2017-08-07 24 views
2

はサンプルコードです:私は、しかし、値1を獲得するために値0と純粋な黒を獲得するために、純粋な白を割り当て、逆に「骨」カラーマップを使用してい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であるため、コードを実行すると、凡例の色は純粋な白で表示されません。

これを修正する方法はありますか?ありがとう。

+0

はこちらを参照:https://stackoverflow.com/questions/39952256/make-squared-in-legend-instead -of-lines-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」も持っています。 –

関連する問題