2017-08-07 183 views
2

下面是示例代碼: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://stackoverflow.com/questions/39952256/make-squared-in-legend-instead線性-matlab/39952475#39952475 – EBH

回答

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

結果:

enter image description here

+1

這很聰明!好戲。 –

0

你在找什麼是colorbar。這將顯示所使用的色彩地圖中所有值的顏色漸變條。

legend('scores');替換爲colorbar

P.S. legend用於識別同一圖中的多個圖。

+0

是的,我實際上在我的情節中使用顏色條,但也有'+'以及'o'代表不同的目標,我也想區分它們。 –

相關問題