Streudiagramm in MATLAB
In diesem Tutorial wird die Erstellung eines Streudiagramms mit der Funktion scatter()
in MATLAB erläutert.
Erstellen Sie ein Streudiagramm mit der Funktion scatter()
in MATLAB
Die Funktion scatter(x,y)
erstellt ein Streudiagramm an der Stelle, die durch die Eingabevektoren x und y angegeben wird. Standardmäßig verwendet die Funktion scatter()
kreisförmige Markierungen, um die angegebenen Daten zu zeichnen. Lassen Sie uns zum Beispiel die Funktion scatter()
verwenden, um ein Streudiagramm der gegebenen Daten zu erstellen. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
scatter(x,y)
Ausgabe:
Die in den Variablen x und y gespeicherten Daten werden verwendet, um ein Streudiagramm in der Ausgabe zu erstellen. Stellen Sie sicher, dass die Länge der Variablen x und y gleich sein sollte. Andernfalls zeigt MATLAB einen Fehler an. Standardmäßig verwendet die Funktion scatter()
den Standardwert für die Größe und Farbe der Kreise, aber wir können die Standardeigenschaften der Funktion ändern. Um beispielsweise die Größe der Kreise zu ändern, müssen wir die Größe der Kreise als drittes Argument innerhalb der Funktion scatter()
definieren. Lassen Sie uns zum Beispiel die Größe der Kreise im obigen Diagramm ändern. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
scatter(x,y,10)
Ausgabe:
Die Größe der Kreise in der obigen Ausgabe unterscheidet sich von der Größe der Kreise im vorherigen Streudiagramm. Die Größe sollte ein positiver numerischer Wert oder ein Vektor der gleichen Größe wie die Eingabevektoren x und y sein. Wenn die Größe wie im obigen Code ein einzelner positiver numerischer Wert ist, gilt sie für alle im Streudiagramm vorhandenen Kreise. Wir können auch jedem Kreis einen anderen Größenwert geben, indem wir einen Vektor der gleichen Länge wie die Eingabevektoren x und y verwenden. Ändern wir beispielsweise die Größe jedes Kreises im obigen Streudiagramm. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize)
Ausgabe:
In der obigen Ausgabe hat jeder Kreis eine andere Größe. Wir können auch die Farbe der Kreise im Streudiagramm ändern, indem wir sie als viertes Argument in der Funktion scatter()
übergeben. Ändern wir beispielsweise die Farbe der Kreise im obigen Streudiagramm in Schwarz. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,[0 0 0])
Ausgabe:
Im obigen Streudiagramm ist die Farbe der Kreise schwarz, aber wir können ihr eine beliebige Farbe zuweisen, indem wir den RGB-Wert dieser Farbe als viertes Argument in die Funktion scatter()
eingeben. Wir können die Farbe auch ändern, indem wir den Farbnamen als String in der Funktion scatter()
übergeben. Wenn wir nur einen Farbwert definieren, wird dieser auf alle im Streudiagramm vorhandenen Kreise angewendet. Wir können auch jedem Kreis eine andere Farbe geben, indem wir eine Matrix derselben Größe wie die Eingabevektoren x und y verwenden. Die Matrix kann positive Zahlenwerte oder RGB-Farbtripel enthalten. Ändern wir beispielsweise die Farbe jedes Kreises im obigen Streudiagramm. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor)
colorbar
Ausgabe:
Der Befehl colorbar
wird im obigen Code verwendet, um einen Farbbalken im Streudiagramm zu zeichnen. An der Farbleiste können wir erkennen, dass die niedrigen Werte zur kälteren Farbe gehören und die hohen Werte zur wärmeren Farbe. Wir haben in diesem Beispiel einen Vektor mit positiven Zahlenwerten verwendet, können aber auch eine Matrix mit RGB-Triplettwerten verwenden. Die Kreise sind in den obigen Streudiagrammen hohl, aber wir können sie auch mit der Eigenschaft gefüllt
in der Funktion scatter()
füllen. Lassen Sie uns zum Beispiel die Kreise im obigen Streudiagramm füllen. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled')
colorbar
Ausgabe:
In der Ausgabe wird jede Farbe gefüllt. Wir können auch das Markierungssymbol im Streudiagramm ändern. Standardmäßig verwendet die Funktion scatter()
den Kreis als Marker, aber wir können ihn ändern, indem wir einen String übergeben, der das Marker-Symbol enthält, wie d
für Raute, p
für das Pentagramm, h
für das Hexagramm , und so weiter. Lassen Sie uns zum Beispiel das Markierungssymbol im obigen Streudiagramm von Kreis zu Pentagramm ändern. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'p')
Ausgabe:
In der Ausgabe wird das Markersymbol in ein Pentagramm geändert. Wir können die Transparenz des Markers auch mit der Eigenschaft MarkerFaceAlpha
in der Funktion scatter()
verändern. Wir können den Transparenzwert von 0 auf 1 ändern. Ändern wir beispielsweise die Transparenz des obigen Streudiagramms auf 0,5. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
CColor = 100:-1:1;
scatter(x,y,CSize,CColor,'filled','MarkerFaceAlpha',0.5)
Ausgabe:
In der Ausgabe hat der Marker dieselbe Kanten- und Gesichtsfarbe, aber wir können dem Marker eine andere Kanten- und Gesichtsfarbe geben. Um die Kantenfarbe des Markers zu ändern, können wir die Eigenschaft MarkerEdgeColor
innerhalb des Plots scatter()
verwenden. Um die Gesichtsfarbe des Markers zu ändern, können wir die Eigenschaft MarkerFaceColor
verwenden. Der Farbwert kann ein beliebiges RGB-Triplet oder ein String sein, der den Farbnamen enthält. Mit der Eigenschaft LineWidth
können wir auch die Linienbreite des Markerrandes verändern. Ändern wir beispielsweise die Kantenfarbe, die Gesichtsfarbe und die Linienbreite der Markierung im obigen Streudiagramm. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
CSize = 1:100;
scatter(x,y,CSize,'MarkerFaceColor','yellow','MarkerEdgeColor','black','LineWidth',1.5)
Ausgabe:
In der Ausgabe ist die Farbe der Markierungsfläche gelb und die Kantenfarbe ist schwarz. Wenn wir ein 3D-Streudiagramm erstellen möchten, können wir die Funktion scatter3()
verwenden. Diese Funktion ist die gleiche wie die Funktion scatter()
, außer dass sie die gegebenen Daten in einer 3D-Ebene darstellt. Wir können der Funktion scatter3()
zwei oder drei Eingabevektoren geben. Bei drei Eingaben enthält der erste Vektor die x-Koordinaten, der zweite die y-Koordinaten und der dritte die z-Koordinaten. Bei zwei Eingabevektoren wird die dritte Koordinate z aus den Indizes der ersten beiden Koordinaten genommen. Lassen Sie uns zum Beispiel das obige Streudiagramm in 3D mit der Funktion scatter3()
zeichnen. Siehe den Code unten.
clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
z = 1:100;
scatter3(x,y,z)
Ausgabe:
Ebenso wie bei der Funktion scatter()
können wir die Eigenschaften der Funktion scatter3()
ändern.