2016-10-07 3 views
0

Für die folgenden MATLAB-Code-Achsen:Zwei Farbbalken für eine Matlab

figure;imshow(imread('cameraman.tif') ,[]) 
hold on;scatter(1:200,1:200,[],1:200);colorbar 

Wie wir die Farbe der Streu sehen können, ist grau, weil die colorbar von ‚cameraman.tif‘ grau. Was ist, wenn ich die Farbleiste der Streuung jet oder hsv möchte? Ich suche einige Informationen aus dem Netzwerk, und ich finde, dass eine Achse nur eine Farbleiste hat.

Also, meine Frage ist, dass, wie die Farbleiste von scatter auf jet setzen und bleiben die Farbbalken von 'cameraman.tif' grau?

ZhQ

+0

Werfen Sie einen Blick [hier] (http : //stackoverflow.com/a/39741044/2627163) und [hier] (http://stackoverflow.com/a/38233971/2627163) – EBH

+0

(1) Es gibt nur eine Farbkarte für "Figur" und nicht für "Achsen". (2) In Ihrem Code kann die Streuung überhaupt nicht gesehen werden. (3) Möchten Sie beide Achsen mit 2 verschiedenen Farbbalken anzeigen? – EBH

Antwort

1

Das Problem scheint in Ihrem scatter. Werfen Sie einen Blick auf here, um zu sehen, wie Sie Farben für scatter definieren können. Ich änderte den Code zu:

figure; 
imshow(imread('cameraman.tif'),[]) 
hold on 
scatter(1:200,1:200,[],jet(200)) % this is what I changed 
colorbar 

und jetzt ist es sieht gut aus:

enter image description here

+0

Was ist, wenn ich die Intensität von Streupunkten 1: 200 zuweisen möchte? Und ich möchte, dass die Farbleiste die Farbkarte der Streupunkte und nicht das Bild darstellt. Was kann ich tun? –

+0

dann formst du deine 'jetmat = jet (200);' so kannst du deine Skala wie 'jetmat ((1: 200), :)' verwenden. Die Streupunkte haben kein * colormap *. Es gibt keinen direkten Weg dazu. – erfan

Verwandte Themen