Matlab:如何在每个数据点获得不同颜色的散点图中设置图例的颜色?

Posted

技术标签:

【中文标题】Matlab:如何在每个数据点获得不同颜色的散点图中设置图例的颜色?【英文标题】:Matlab: How to set color of legend in a scatter plot where each data point gets a different color? 【发布时间】:2018-01-14 07:48:43 【问题描述】:

这里是示例代码:

x = rand(100,1);
y = rand(100,1);
score = rand(100,1);
figure;
colormap(flipud(bone));
caxis([0 1])
axis([0 1 0 1])
scatter(x,y,50,score,'+','LineWidth',2);
legend('scores');

我正在使用反转的“骨骼”颜色图,它将纯白色分配给得分值 0,将纯黑色分配给得分值 1。但是,图例似乎自动分配了得分 0,因此如果您运行代码图例颜色为纯白色,不可见。

有没有办法解决这个问题?谢谢。

【问题讨论】:

参见此处:***.com/questions/39952256/… 【参考方案1】:

如果您只想绘制黑色+ 而不显示数据的颜色范围(如颜色条),您可以为此创建一个虚拟图例。这样做的方法如下:

% plot some dummy data for the legend:
scatter(nan,nan,[],1,'+','LineWidth',2)
hold on
% plot your data:
scatter(x,y,50,score,'+','LineWidth',2);
hold off
% add the legend only for the first (dummy) data:
leg = legend('scores');

结果:

【讨论】:

【参考方案2】:

您正在寻找的是colorbar。这显示了一个带有颜色渐变的条形图,用于使用的颜色图中的所有值。

legend('scores'); 行替换为colorbar

附: legend 用于识别同一图中的多个地块。

【讨论】:

是的,我实际上在我的情节中使用了颜色条,但我也有 '+' 和 'o' 代表不同的目标,我也想区分它们。

以上是关于Matlab:如何在每个数据点获得不同颜色的散点图中设置图例的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

echart 散点图 怎么确认每个像素点有多少数据点集合?

如何在python中的散点图中平滑数据点?

如何将时间用作带有seaborn的散点图的x轴?

R语言ggplot2可视化数据点重合的散点图数据点有重合使用geom_smooth函数基于lm方法拟合数据点之间的趋势关系曲线自定义数据点的大小色彩添加主标题副标题题注信息

分离散点图并添加线

如何将图例添加到具有颜色分配的散点图