2017-05-02 3 views
0

Angenommen, ich habe eine Funktion w von 2D-Raum bis 1D-Koordinatenwert, so dasseine Funktion aus 2D-Zeichnen als Heatmap bis 1D: Matlab

w(a,b) := min(a,b) 

ich diese Funktion als Heatmap darstellen will in Matlab.

Zum Beispiel habe ich ein Quadrat auf der kartesischen Ebene mit den Eckpunkten zeichnen (0,0), (0,1), (1,0), (0,0). Dann färbt ich die Region innerhalb des Quadrats, indem ich zwei beliebigen Paaren von Punkten (a,b) und (c,d) die gleiche Farbe zuweise, wenn w(a,b)=w(c,d).

Ist mein Verständnis einer Heatmap korrekt? Wenn ja, wie kann ich dies in Matlab erreichen?

+0

hummmm '[0,1]^2' ist' [0,1] '...... –

+1

Neben surfen und contourf gibt es [' pcolor'] (http: //uk.mathworks. com/help/Matlab/ref/pcolor.html) (näher zum surfen). – Steve

+0

Dank @Steve, das könnte eine gute Option sein, da es eine direkte 2D-Darstellung ist, wusste ich nicht, dass diese Funktion existierte! Ich habe jetzt alternative Links am Ende meiner Antwort eingefügt. – Wolfie

Antwort

3

Sie können dies mit surf erreichen, die eine Oberfläche darstellt, die von oben gesehen wie eine Heatmap aussieht. Siehe den kommentierten Code für Details:

% Define axes points as [0,0.1,0.2,...,1] 
ax = 0:0.1:1; 
% Make grid of values corresponding to min(x,y) 
xy = bsxfun(@min, ax, ax'); 
% Plot 
surf(xy); % Plot surface 
view(2); % Look from "above" onto x-y plane 
set(gca, 'XTickLabel', ax) % Set x-axis labels 
set(gca, 'YTickLabel', ax) % Set y-axis labels 
colorbar; % Show colorbar as a legend 

Ausgang:

heatmap

Sie können diese erweitern indem Sie eine benutzerdefinierte Funktion verwenden, wenn min nur ein Beispiel ist.

ax = 0:0.1:1; 
% Define function 
w = @(a,b) a - exp(b) 
% Use custom function inside bsxfun 
xy = bsxfun(w, ax, ax'); 
surf(xy); % ... etc 

Lesen Sie die Dokumentation für Details: https://uk.mathworks.com/help/matlab/ref/bsxfun.html


auch die Dokumentation für pcolor sehen, die eine 2D-Farbplot schafft so keine Perspektive Änderung erforderlich ist, und contourf welche Regionen nicht alle Quadrate umreißt.

Verwandte Themen