Streudiagramm in MATLAB

Ammar Ali 15 Februar 2024
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:

Streudiagramm

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:

Größe der Kreise im Streudiagramm ändern

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:

Streudiagramm mit verschiedenen Kreisgrößen

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:

Ändern der Farbe der Kreise im Streudiagramm

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:

Streudiagramm mit verschiedenen Kreisfarben

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:

Ausfüllen von Kreisen im Streudiagramm

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:

Ändern des Markersymbols im Streudiagramm

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:

Ändern der Markertransparenz im Streudiagramm

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:

Ändern der Markierungsflächen- und Kantenfarbe im Streudiagramm

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:

Streudiagramm in 3D-Ebene

Ebenso wie bei der Funktion scatter() können wir die Eigenschaften der Funktion scatter3() ändern.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Plot