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,所以如果你运行代码,图例颜色是纯白色的并且不可见。

有什么方法可以解决这个问题吗?谢谢。

+0

参见这里:https://*.com/questions/39952256/make-squared-in-legend-instead线性-matlab/39952475#39952475 – EBH

如果您只想绘制黑色+而不显示数据的颜色范围(与颜色栏相同),则可以为其创建虚拟图例。这里是你如何做到这一点:

% 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'); 

结果:

enter image description here

+1

这很聪明!好戏。 –

你在找什么是colorbar。这将显示所使用的色彩地图中所有值的颜色渐变条。

legend('scores');替换为colorbar

P.S. legend用于识别同一图中的多个图。

+0

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