问题:

使用for循环后,scatter3图中的图例颜色与系列颜色不匹配.

背景:

我正在编写一个脚本来生成基于实验数据的3d图.我也处理R中的数据.因此,数据被格式化为data.frame(即具有标题的nx7 CSV是值增益成本,熵,风险,可信度,算法,颜色,pch).我希望得到的三维散点图为每个观察点(即每个[x,y,z]元素)添加一个点,并根据其pch值对其进行着色(例如,所有pch == 1的观测值应该是相同的颜色).

码:

%get & count unique pch values ommitting NANs

UniquePchVal =transpose(unique(pch));

numberOfUniquePchVals=length(UniquePchVal(~isnan(UniquePchVal)))

UniquePchVal = UniquePchVal(1:numberOfUniquePchVals);

% get boolean vector for each series to indicate which observations should

% are to be included

numberOfObservations=length(pch)

UniquePchValMatrix = repmat(UniquePchVal,numberOfObservations,1);

pchMatrix=repmat(pch,1,numberOfUniquePchVals);

rows=UniquePchValMatrix(1:numberOfObservations,1:numberOfUniquePchVals);

rows =(rows==pchMatrix);

%make the plot

hold on

for i=1:numberOfUniquePchVals

x=ValueGain(rows(:,i));

y=Cost(rows(:,i));

z=Risk(rows(:,i));

size=repmat(20,length(x),1);

color=repmat(i,length(x),1);

h(i)=scatter3(x,y,z,size,color,'filled');

end

xlabel('Value Gain')

ylabel('Cost')

zlabel('Risk')

legend(h,unique(algorithm))

hold off

结果:

执行代码会生成一个图例,其中每个点都是相同的颜色.

样本数据:

Value Gain Cost Entropy Risk Credibility algorithm color pch

-0.0 0.0 -0.0 0.0 -0.0 MOEAD orange 3

-1.39838 1.44 -1.0 2.55555 -1.0 MOEAD orange 3

-1.41319 4.15 -1.0 1.55555 -1.0 MOEAD orange 3

-1.39593 3.84 -1.0 1.55555 -1.0 MOEAD orange 3

-1.25189 1.11 -0.5 1.55555 -1.0 IBEA cornflowerblue 4

-1.43183 2.87 -0.5 2.55555 -1.0 IBEA cornflowerblue 4

-1.38953 1.43 -1.0 1.55555 -1.0 NSGA2 #fb8072 5

-1.39585 1.13 -0.33333 1.55555 -1.0 NSGA2 #fb8072 5

-1.1792 1.0 -0.2 2.55555 -1.0 NSGA2 #fb8072 5

-1.38244 1.14 -1.0 1.55555 -1.0 NSGA2 #fb8072 5

-0.05665 0.89 -1.0 2.55543 -1.0 NSGA2 #fb8072 5

-0.1175 0.9 -0.5 1.55556 -1.0 NSGA2 #fb8072 5

-0.06518 0.75 -0.33333 1.55555 -1.0 NSGA2 #fb8072 5

-0.51192 0.98 -0.5 1.55555 -1.0 NSGA2 #fb8072 5

-0.77432 0.98 -1.0 2.55555 -1.0 NSGA2 #fb8072 5

-0.82269 0.94 -0.25 2.55555 -1.0 NSGA2 #fb8072 5

-0.92626 1.0 -1.0 1.55555 -1.0 NSGA2 #fb8072 5

最佳答案 如果所有标记都是相同的颜色,或者只有少数不同的颜色,那么使用line而不是scatter3会更有效;后者为每个标记创建一个句柄,行有一个句柄用于所有点.具有多个点的scatter3可以使Matlab停止.

使用line时添加的奖励是图例按预期工作:

colors = ['r','g','b'];

hold on

h = [];

for ii = 1:3

x = rand(10,1);

y = rand(10,1);

z = rand(10,1);

h(ii) = line(x,y,z);

set(h(ii),...

'Marker','.',...

'MarkerEdgeColor',colors(ii),...

'MarkerFaceColor',colors(ii),...

'MarkerSize',10,...

'LineStyle','none')

end

legend('a','b','c')

matlab scatter3点颜色,使用for循环MATLAB时,scatter3中的系列颜色与Legend不匹配相关推荐

  1. matlab在图片上显示文字颜色,科学网-解决matlab saveas printf保存图片时 colorbar中的字体颜色发生改变-肖鑫的博文...

    matlab在画多个图片循环保存时很容易出现看到的图跟保存的图片不一样,最常见的是大小不同导致坐标轴拉伸变形,主要是图片分辨率跟屏幕分辨率不同的原因,这个可以通过在设置figure时,固定画布大小解决 ...

  2. matlab print 保留颜色,科学网—解决matlab saveas printf保存图片时 colorbar中的字体颜色发生改变 - 肖鑫的博文...

    matlab在画多个图片循环保存时很容易出现看到的图跟保存的图片不一样,最常见的是大小不同导致坐标轴拉伸变形,主要是图片分辨率跟屏幕分辨率不同的原因,这个可以通过在设置figure时,固定画布大小解决 ...

  3. HTML设置字体颜色1008无标题,如何在HTML中设置字体颜色,你知道这几种方式吗?...

    color设置字体颜色 在color设置字体颜色之前,我们首先了解color在css中有几种取值方式,一共有4种方式,若有不全还请在评论区告知谢谢,4种方式如下: 十六进制.十进制. 英文单词.十六进 ...

  4. 【前端工程化】windicss ,默认自带的字体颜色不好使,在背景色background-color中使用默认颜色的配置,windi.config.ts的配置注意事项

    版本: "windicss": "^3.5.6" "vite-plugin-windicss": "^1.8.7", 使 ...

  5. python读excel字体颜色_无法使用python xlsxwri更改excel中的字体颜色

    在XlsxWriter中使用条件格式时,最好先弄清楚要在Excel中执行什么操作,然后将其传输到XlsxWriter.在 在这种情况下,Excel不支持单元格与字符串相等.相反,你必须使用" ...

  6. matlab需要多大运存_提高matlab运行效率

    用过Matlab的人都知道,Matlab是一种解释性语言,存在计算速度慢的问题,为了提高程序的运行效率,matlab提供了多种实用工具及编码技巧. 1. 循环矢量化 Matlab是为矢量和矩阵操作而设 ...

  7. matlab 直方图_MATLAB作图实例:19:用二元直方图分析图片颜色

    本示例说明如何调整二元直方图的颜色标度(color scale),以显示有关分箱(bin)的其他详细信息. 加载图像peppers.png,该图像是几种类型的辣椒和其他蔬菜的彩色照片.无符号的8位整数 ...

  8. Matlab变量、分支语句和循环语句

    Matlab变量.分支语句和循环语句 一.Matlab的变量 1.变量的命名 Matlab的变量名由数字.字母和下划线组成,可是仅仅能由字母开头.大写和小写敏感,最大长度为63个字符.不能使用Matl ...

  9. 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出

    回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 目录 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 基本介绍 模型结构 CNN神经网络 G ...

  10. matlab显示字体颜色,在Matlab中显示字体颜色

    我正在尝试创建一个数字(转换为字符串)的数组,并在阈值下降的下方,对于我当前使用0.5的测试.我需要我的桌子上的每个值的字体都落在我的门槛上,以红色显示,在我目前的代码中,我只使用2列,但我将使用10 ...

最新文章

  1. 不同分类算法的优缺点是什么?(值得推荐)
  2. python安装pyopenssl
  3. PL/0语言编译程序分析
  4. 计算机辅助翻译的启示,翻译单位研究对计算机辅助翻译启示.PDF
  5. USACO-Section2.3 Controlling Companies
  6. UIScollView Touch事件
  7. Struts项目中引入了过滤器filter后出现中文乱码情况
  8. IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
  9. 好看的php表格样式,3款精美的css3 table表格样式设计
  10. 计算机网络自顶向下方法 习题参考答案 第三章
  11. 面试题:用两个栈实现一个队列 Java语言实现
  12. 【c语言】打印出100以内奇数
  13. java中的数据结构——栈
  14. 虚拟内存和缺页,为什么使用一键加速会使你的电脑变慢?
  15. 高中计算机教学工作计划,2017高中信息技术教学工作计划
  16. 头歌 共享单车大数据项目数据分析
  17. 团队管理2 | 管理的天时、地利、人和
  18. moss修改ad密码
  19. Html内外宽度已经清除浮动基础笔记
  20. Java: Integer比较127, 128

热门文章

  1. 国际禁毒日 缉毒犬“光速查毒”威武又亲民(图)
  2. Linux T恤设计大赛 “飞企鹅”获奖
  3. 小米摄像头有onvif协议_小米8SE、魅族16T、荣耀畅玩9A对比
  4. linux 服务器 安装svn
  5. 项目管理中用什么工具可以增强团队协作?
  6. 电脑连接另一台电脑发出wifi时,显示ip4无访问权限,ip6无访问权限
  7. 【MATLAB】clear和clc用法
  8. Docker与Dragonfly详细多机部署
  9. 测试行业4年经验,面试进了阿里,二个月后我果断选择裸辞...
  10. matlab 线性插值缩放图片,双线性插值实现图像放大(Matlab实现)