Kombinieren mehrerer Diagramme
Dieses Beispiel veranschaulicht, wie Sie verschiedene Diagramme mit der Funktion hold
auf denselben Achsen kombinieren und auf einer Abbildung mit der Funktion tiledlayout
mehrere Achsen erstellen können.
Kombinieren von Diagrammen auf denselben Achsen
Standardmäßig löschen neue Diagramme bestehende Diagramme und setzen Achseneigenschaften (z. B. den Titel) zurück. Sie können jedoch über den Befehl hold on
mehrere Diagramme auf denselben Achsen kombinieren. Erstellen Sie beispielsweise zwei Liniendiagramme und ein Streudiagramm. Setzen Sie daraufhin den Haltestatus auf aus.
x = linspace(0,10,50); y1 = sin(x); plot(x,y1) title('Combine Plots') hold on y2 = sin(x/2); plot(x,y2) y3 = 2*sin(x); scatter(x,y3) hold off
Ist der Haltestatus aktiviert, löschen neue Diagramme nicht bestehende Diagramme und setzen keine Achseneigenschaften (z. B. Titel oder Achsenbeschriftungen) zurück. Die Diagramme wechseln gemäß den Eigenschaften ColorOrder
und LineStyleOrder
der Achsen durch die Farben und Linienstile. Die Achsengrenzwerte und Teilstrichwerte passen sich ggf. an die neuen Daten an.
Anzeigen mehrerer Achsen auf einer Abbildung
Mithilfe der Funktion tiledlayout
können Sie mehrere Achsen auf einer einzigen Abbildung darstellen. Diese Funktion erstellt ein gekacheltes Diagramm-Layout mit einem unsichtbaren Raster über der gesamten Abbildung. Jede Kachel kann Achsen zur Anzeige eines Diagramms enthalten. Rufen Sie nach der Erstellung eines Layouts die nexttile
-Funktion auf, um ein Achsenobjekt im Layout zu platzieren. Rufen Sie daraufhin eine Diagrammfunktion auf, um ein Diagramm entlang der Achsen zu erstellen. Erstellen Sie beispielsweise zwei Diagramme in einem 2x1-Layout. Fügen Sie jedem Diagramm einen Titel hinzu.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); tiledlayout(2,1) % Top plot nexttile plot(x,y1) title('Plot 1') % Bottom plot nexttile scatter(x,y2) title('Plot 2')
Erstellen eines Diagramms über mehrere Zeilen oder Spalten
Um ein Diagramm über mehrere Zeilen oder Spalten hinweg zu erstellen, geben Sie beim Aufrufen von nexttile
das Argument span
an. Erstellen Sie beispielsweise ein 2x2-Layout. Erstellen Sie Diagramme in den ersten zwei Kacheln. Erstellen Sie daraufhin ein Diagramm über eine Zeile und zwei Spalten hinweg.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); % Top two plots tiledlayout(2,2) nexttile plot(x,y1) nexttile scatter(x,y2) % Plot that spans nexttile([1 2]) y2 = rand(50,1); plot(x,y2)
Ändern der Achsendarstellung
Sie können die Achsendarstellung ändern, indem Sie die Eigenschaften der Achsenobjekte ändern. Sie können die Funktion nexttile
mit dem Ausgabeargument aufrufen, um das Achsenobjekt zu erhalten. Sie können das Achsenobjekt zudem als erstes Eingabeargument für eine Grafikfunktion angeben, um sicherzustellen, dass die Funktion die korrekten Achsen anzielt.
Sie können beispielsweise zwei Diagramme erstellen und die Achsenobjekte den Variablen ax1
und ax2
zuweisen. Ändern Sie die Schriftgröße der Achsen und die Farbe der x-Achse des ersten Diagramms. Fügen Sie dem zweiten Diagramm Rasterlinien hinzu.
x = linspace(0,10,50); y1 = sin(x); y2 = rand(50,1); tiledlayout(2,1) % Top plot ax1 = nexttile; plot(ax1,x,y1) title(ax1,'Plot 1') ax1.FontSize = 14; ax1.XColor = 'red'; % Bottom plot ax2 = nexttile; scatter(ax2,x,y2) title(ax2,'Plot 2') grid(ax2,'on')
Regeln der Kachelabstände
Sie können die Abstände der Kacheln in einem Layout über die Eigenschaften Padding
und TileSpacing
regeln. Erstellen Sie zum Beispiel vier Diagramme in einem 2x2-Layout.
x = linspace(0,30);
y1 = sin(x);
y2 = sin(x/2);
y3 = sin(x/3);
y4 = sin(x/4);
% Create plots
t = tiledlayout(2,2);
nexttile
plot(x,y1)
nexttile
plot(x,y2)
nexttile
plot(x,y3)
nexttile
plot(x,y4)
Setzen Sie die Eigenschaften Padding
und TileSpacing
auf 'compact'
, um die Abstände um das Layout und jede Kachel zu reduzieren.
t.Padding = 'compact'; t.TileSpacing = 'compact';
Anzeigen gemeinsamer Titel und Achsenbeschriftungen
Sie können in einem Layout gemeinsame Titel und gemeinsame Achsenbeschriftungen anzeigen. Erstellen Sie ein 2x1-Layout t
. Zeigen Sie daraufhin ein Liniendiagramm und ein Stamm-Blatt-Diagramm an. Rufen Sie die Funktion linkaxes
auf, um die Grenzwerte der x-Achse zu synchronisieren.
x1 = linspace(0,20,100); y1 = sin(x1); x2 = 3:17; y2 = rand(1,15); % Create plots. t = tiledlayout(2,1); ax1 = nexttile; plot(ax1,x1,y1) ax2 = nexttile; stem(ax2,x2,y2) % Link the axes linkaxes([ax1,ax2],'x');
Übergeben Sie t
den Funktionen title
, xlabel
und ylabel
, um einen gemeinsamen Titel und gemeinsame Achsenbeschriftungen hinzuzufügen. Bringen Sie die Diagramme näher zusammen, indem Sie die Teilstrich-Beschriftungen der x-Achse vom oberen Diagramm entfernen und die Eigenschaft TileSpacing
von t
auf 'compact'
setzen.
% Add shared title and axis labels title(t,'My Title') xlabel(t,'x-values') ylabel(t,'y-values') % Move plots closer together xticklabels(ax1,{}) t.TileSpacing = 'compact';
Siehe auch
Funktionen
tiledlayout
|nexttile
|title
|hold