2017-12-06 1 views
2

Ich habe 4 verschiedenen Datensatz A, B, C, D 4 Heatmaps in einem subplotMatlab heatmap: eine einheitliche Color für alle Nebenhandlungen Herstellung

xvalues = {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'}; 
yvalues = {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'}; 

subplot(2,2,1) 
HA = heatmap(xvalues,yvalues,A); 
HA.Title = 'A'; 
HA.XLabel = 'area'; 
HA.YLabel = 'area'; 

subplot(2,2,2) 
HB = heatmap(xvalues,yvalues,B); 
HB.Title = 'B'; 
HB.XLabel = 'area'; 
HB.YLabel = 'area'; 

subplot(2,2,3) 
HC = heatmap(xvalues,yvalues,C); 
HC.Title = 'C'; 
HC.XLabel = 'area'; 
HC.YLabel = 'area'; 

subplot(2,2,4) 
HD = heatmap(xvalues,yvalues,D); 
HD.Title = 'D'; 
HD.XLabel = 'area'; 
HD.YLabel = 'area'; 

zu erzeugen, da jeder Datensatz einen unterschiedlichen Maximal- und Minimalwert aufweist, Die Heatmap verwendete die entsprechenden Min- und Max-Werte jedes Datensatzes für seine Farbskala, sodass alle 4 Diagramme ähnlich aussahen. Gibt es eine Möglichkeit, eine Farbskala zu erstellen, so dass sie einheitlich für alle Unterplots verwendet wird? (Wird leichter sein, die Unterschiede zwischen den Nebenhandlungen zu sehen)

+0

Pic k Führen Sie die Farbskala aus, um vom niedrigsten Wert in Ihren vier Datensätzen zum höchsten Wert in Ihren vier Datensätzen zu wechseln, und verwenden Sie diesen Maßstab für alle Unterplots. – Adriaan

+1

Das erste Google-Ergebnis lautet: https://www.mathworks.com/help/matlab/ref/caxis.html –

Antwort

1

Sie wollen zunächst die Minimal- und Maximalwerte für alle der Datensätze erhalten, verwenden Sie diese dann die 'ColorLimits' property von jeder heatmap einzustellen:

minValue = min([A(:); B(:); C(:); D(:)]); 
maxValue = max([A(:); B(:); C(:); D(:)]); 
HA.ColorLimits = [minValue maxValue]; 
HB.ColorLimits = [minValue maxValue]; 
HC.ColorLimits = [minValue maxValue]; 
HD.ColorLimits = [minValue maxValue]; 

Sie könnten auch die caxis Funktion (as you typically would for other plots) verwenden, obwohl Sie target jedes heatmap Objekt haben, da sie jeweils ihre eigenen colormap haben:

caxis(HA, [minValue maxValue]); 
caxis(HB, [minValue maxValue]); 
caxis(HC, [minValue maxValue]); 
caxis(HD, [minValue maxValue]); 
+0

Die 'ColorLimits'-Befehle funktionieren sehr gut, aber ich denke, wenn ich irgendeine andere Handlung machen würde, müsste ich sie verwenden 'Caxis' stattdessen. – Aiskya

+0

@Aiskya: Ja, für andere Plots würden Sie 'caxis' für jedes * axes * -Objekt verwenden. – gnovice

+0

Ich schätze Ihre Hilfe! – Aiskya

Verwandte Themen