2016-07-25 2 views
2

Ich habe ad × d Array A ganzzahliger Werte und wollen Farbkode sie auf die zu d skaliert xy-Ebene in einem Rechteck angezeigt × d Verwenden von Farben, die der Größe des Werts von Array an dieser Position entsprechen. Ich möchte auch die Farbkarte angezeigt werden, die ist, welche Farbe zeigt an, welche Größe wie in der folgenden Abbildung: -
Fig 3 of http://home.deib.polimi.it/tubaro/Conferences/2013_WASPAA_2.pdfFarbkodierte 2D Plot in MATLAB

Gibt es einen einfachen Code, der dies tun kann?
Oder benötigt diese Art von Charts spezielle Pakete?


Funktioniert das ('A' ist Matrix mit nicht negativen Einträgen)?

function plot2Ddistprf(A, Length, Breadth) 

Amax=max(A(:)); 
A=A/Amax; 

G1 = linspace(0,Length,size(A,1)); 
G2 = linspace(0,Breadth,size(A,2)); 

[X,Y] = meshgrid(G1,G2); 

% plot data 
figure;      % create a new figure 
contourf(X,Y,A);   % plot data as surface 
caxis([1,100]);   % set limits of colormap 
colorbar;     % display the colorbar 

Antwort

1

Versuchen Sie, die contourf Funktion und dann die colorbar

contourf(A) 
colorbar 
+1

Sie einen Tippfehler haben: 'contourf' –

+0

@TasosPapastylianou was macht das? – Turbo

+0

@ClaesRolen Haben Sie ein Beispiel für die Verwendung? – Turbo

1

Keine externe Bibliothek oder spezielle Paket hinzufügen, eine solche Handlung erstellen benötigt. Sie können contourf verwenden, um die Daten zu plotten. Stellen Sie dann die Farbpalette auf gray. Mit caxis können Sie die Farbpalette steuern. colorbar zeigt die Leiste auf der rechten Seite.

Das Ergebnis sieht wie folgt aus:

result

Hier ist der Code:

% generate sample data 
d1 = linspace(-3,3,200); 
d2 = linspace(-3,3,200); 
[X,Y] = meshgrid(d1,d2); 
A = -abs(peaks(X,Y))+100; 

% plot data 
figure;      % create a new figure 
contourf(X,Y,A);   % plot data as surface 

colormap(gray);    % use gray colormap 
caxis([91,100]);   % set limits of colormap 
colorbar;     % display the colorbar 

title('The Title'); 
xlabel('y'); 
ylabel('x'); 
+0

wird dies funktionieren (A ist Matrix mit nicht-negativen Einträgen)? Funktion plot2Ddistprf (A, Länge, Breite) Amax = max (A (:)); A = A/Amax; G1 = linspace (0, Länge, Größe (A, 1)); G2 = linspace (0, Breite, Größe (A, 2)); % d2 = linspace (-3,3,200); [X, Y] = Gittergitter (G1, G2); % Plotdaten Abbildung; % Erstelle eine neue Figur contourf (X, Y, A); % Plotdaten als Oberfläche Caxis ([1.100]); % set Grenzen von colormap colorbar; % Anzeige der Farbleiste Titel ('The Title'); xlabel ('y'); ylabel ('x'); – Turbo

+0

Wie werden Sie für Farbdaten skalieren? – Turbo

+0

@Turbo versuchen Sie es, anstatt zu fragen! –