繁体   English   中英

在MATLAB中,如何在散点图中使用带有色彩映射的图例

[英]In MATLAB, how do I use legend with colormap in a scatter plot

在MATLAB中,如何在散点图中使用带有色彩映射的图例?

例如:

colormap winter
xData = [1 2 3 4 5];
yData = [7 4 2 8 1];
col = [1 1 2 2 1];
h1 = scatter(xData, yData, 50, col,'s');
legend('one','two')

显然这个传说是错误的,因为它只显示'一个'。 我知道我可以通过col分割数据并绘制两个散点图但是在使用色彩映射时必须有一个简单的方法来制作图例?

这就是我使用gscatter绘制数据的方法:

gscatter(xData,yData,col)
legend('one','two')

显然,输出在光学上与scatter不完全相同,但如果你想用col对你的点进行分组, gscatter似乎是正确的选择。

作为一种替代解决方案,它保留了scatter() - 样式,我建议在循环中使用散点图,为每个组调用一次。 因此,我们创建了颜色图,它将被使用并手动分配颜色:

xData = [1 2 3 4 5];
yData = [7 4 2 8 1];
col = [1 1 2 2 1];
groups = unique(col);
nGroups = length(groups);
cmap = colormap(winter(nGroups));
figure
hold on
for iGroup = 1:nGroups
    group = groups(iGroup);
    idx = col==group;
    scatter(xData(idx), yData(idx), 50, cmap(iGroup,:),'s');
end
legend('one','two')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM