matlab scatter3点颜色,使用for循环MATLAB时,scatter3中的系列颜色与Legend不匹配
问题:
使用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不匹配相关推荐
- matlab在图片上显示文字颜色,科学网-解决matlab saveas printf保存图片时 colorbar中的字体颜色发生改变-肖鑫的博文...
matlab在画多个图片循环保存时很容易出现看到的图跟保存的图片不一样,最常见的是大小不同导致坐标轴拉伸变形,主要是图片分辨率跟屏幕分辨率不同的原因,这个可以通过在设置figure时,固定画布大小解决 ...
- matlab print 保留颜色,科学网—解决matlab saveas printf保存图片时 colorbar中的字体颜色发生改变 - 肖鑫的博文...
matlab在画多个图片循环保存时很容易出现看到的图跟保存的图片不一样,最常见的是大小不同导致坐标轴拉伸变形,主要是图片分辨率跟屏幕分辨率不同的原因,这个可以通过在设置figure时,固定画布大小解决 ...
- HTML设置字体颜色1008无标题,如何在HTML中设置字体颜色,你知道这几种方式吗?...
color设置字体颜色 在color设置字体颜色之前,我们首先了解color在css中有几种取值方式,一共有4种方式,若有不全还请在评论区告知谢谢,4种方式如下: 十六进制.十进制. 英文单词.十六进 ...
- 【前端工程化】windicss ,默认自带的字体颜色不好使,在背景色background-color中使用默认颜色的配置,windi.config.ts的配置注意事项
版本: "windicss": "^3.5.6" "vite-plugin-windicss": "^1.8.7", 使 ...
- python读excel字体颜色_无法使用python xlsxwri更改excel中的字体颜色
在XlsxWriter中使用条件格式时,最好先弄清楚要在Excel中执行什么操作,然后将其传输到XlsxWriter.在 在这种情况下,Excel不支持单元格与字符串相等.相反,你必须使用" ...
- matlab需要多大运存_提高matlab运行效率
用过Matlab的人都知道,Matlab是一种解释性语言,存在计算速度慢的问题,为了提高程序的运行效率,matlab提供了多种实用工具及编码技巧. 1. 循环矢量化 Matlab是为矢量和矩阵操作而设 ...
- matlab 直方图_MATLAB作图实例:19:用二元直方图分析图片颜色
本示例说明如何调整二元直方图的颜色标度(color scale),以显示有关分箱(bin)的其他详细信息. 加载图像peppers.png,该图像是几种类型的辣椒和其他蔬菜的彩色照片.无符号的8位整数 ...
- Matlab变量、分支语句和循环语句
Matlab变量.分支语句和循环语句 一.Matlab的变量 1.变量的命名 Matlab的变量名由数字.字母和下划线组成,可是仅仅能由字母开头.大写和小写敏感,最大长度为63个字符.不能使用Matl ...
- 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出
回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 目录 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 基本介绍 模型结构 CNN神经网络 G ...
- matlab显示字体颜色,在Matlab中显示字体颜色
我正在尝试创建一个数字(转换为字符串)的数组,并在阈值下降的下方,对于我当前使用0.5的测试.我需要我的桌子上的每个值的字体都落在我的门槛上,以红色显示,在我目前的代码中,我只使用2列,但我将使用10 ...
最新文章
- 不同分类算法的优缺点是什么?(值得推荐)
- python安装pyopenssl
- PL/0语言编译程序分析
- 计算机辅助翻译的启示,翻译单位研究对计算机辅助翻译启示.PDF
- USACO-Section2.3 Controlling Companies
- UIScollView Touch事件
- Struts项目中引入了过滤器filter后出现中文乱码情况
- IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
- 好看的php表格样式,3款精美的css3 table表格样式设计
- 计算机网络自顶向下方法 习题参考答案 第三章
- 面试题:用两个栈实现一个队列 Java语言实现
- 【c语言】打印出100以内奇数
- java中的数据结构——栈
- 虚拟内存和缺页,为什么使用一键加速会使你的电脑变慢?
- 高中计算机教学工作计划,2017高中信息技术教学工作计划
- 头歌 共享单车大数据项目数据分析
- 团队管理2 | 管理的天时、地利、人和
- moss修改ad密码
- Html内外宽度已经清除浮动基础笔记
- Java: Integer比较127, 128
热门文章
- 国际禁毒日 缉毒犬“光速查毒”威武又亲民(图)
- Linux T恤设计大赛 “飞企鹅”获奖
- 小米摄像头有onvif协议_小米8SE、魅族16T、荣耀畅玩9A对比
- linux 服务器 安装svn
- 项目管理中用什么工具可以增强团队协作?
- 电脑连接另一台电脑发出wifi时,显示ip4无访问权限,ip6无访问权限
- 【MATLAB】clear和clc用法
- Docker与Dragonfly详细多机部署
- 测试行业4年经验,面试进了阿里,二个月后我果断选择裸辞...
- matlab 线性插值缩放图片,双线性插值实现图像放大(Matlab实现)