Matlab:如何在每个数据点获取不同颜色的散点图中设置图例的颜色?
问题描述:
下面是示例代码:Matlab:如何在每个数据点获取不同颜色的散点图中设置图例的颜色?
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,所以如果你运行代码,图例颜色是纯白色的并且不可见。
有什么方法可以解决这个问题吗?谢谢。
答
如果您只想绘制黑色+
而不显示数据的颜色范围(与颜色栏相同),则可以为其创建虚拟图例。这里是你如何做到这一点:
% 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');
结果:
+1
这很聪明!好戏。 –
答
+0
是的,我实际上在我的情节中使用颜色条,但也有'+'以及'o'代表不同的目标,我也想区分它们。 –
参见这里:https://*.com/questions/39952256/make-squared-in-legend-instead线性-matlab/39952475#39952475 – EBH