2 Stimmen

Punkte eines Streudiagramms verbinden und eine Linie erstellen

Wie kann man die Punkte eines Streudiagramms nach der Aufzeichnung verbinden und eine Linie aus einem gepunkteten Diagramm erstellen?

5voto

Jacob Punkte 33625

Ich nehme an, Sie haben ein Streudiagramm aus x et y Koordinaten von,

plot(x,y,'.');

Verbinden Sie sie mit

plot(x,y,'.');
hold on;
plot(x,y,'-');

Oder mit einem einzigen Befehl

plot(x,y,'.-');

Ist es das, was Sie wollten?

3voto

Wenn Sie ein bestehendes Diagramm als Streudiagramm haben, können Sie nicht einfach die Punkte verbinden, ohne zu wissen, welche Punkte mit welchen anderen verbunden sind.

Wenn Sie die Reihenfolge/Verbundenheit der Punkte kennen, hätten Sie einfach die Plot-Funktion verwenden können, um dies von vornherein zu tun. Der Aufruf

plot(x,y,'-')

verbindet die Punkte mit geraden Liniensegmenten. Wenn Sie an jedem Punkt entlang der Linie ein Markierungssymbol verwenden möchten, können Sie eine der Markierungen hinzufügen, die in Plot möglich sind, z. B. diese:

plot(x,y,'o-')

Eine Liste der zulässigen Markierungen finden Sie unter

help plot

Wenn Sie Scatter für eine Reihe von Punkten verwendet haben und nun eine Linie überlagern möchten, die die Punkte verbindet, dann verwenden Sie die Hold-Funktion, um Matlab zu zwingen, über dem Scatter-Plot zu zeichnen. Zum Beispiel,

scatter(x,y)
hold on
plot(x,y,'-')
hold off

Auch bei diesen Varianten müssen Sie die Konnektivität zwischen den Punkten kennen. Es gibt einige Verfahren, die manchmal funktionieren, um diese Konnektivität aus einer Liste isolierter Punkte wiederherzustellen. Eine dieser Methoden heißt KRUSTEN die häufig für die 3-D-Oberflächenrekonstruktion verwendet werden. Mit einer einfachen Suche nach "Krustenalgorithmus" habe ich viele Referenzen gefunden.

1voto

yuk Punkte 18683

Wenn Sie ein Streudiagramm haben (das vermutlich mit der Streuungsfunktion erstellt wurde) und es aus irgendeinem Grund nicht mit Plot neu zeichnen möchten, können Sie die Punkte folgendermaßen verbinden:

h = findobj(gca,'type','hggroup');
hold on
for k=1:numel(h)
    x = get(h(k),'xdata');
    y = get(h(k),'ydata');
    plot(x,y,'-')
end
hold off

Die Punkte werden in ihrer ursprünglichen Reihenfolge verbunden. Wenn Sie möchten, können Sie die Daten vor der Darstellung sortieren, zum Beispiel nach x:

[x,ind] = sort(x);
y = y(ind);

1voto

DSkoog Punkte 657

Um die Frage zu beantworten, wie man das in Maple macht, kann man einfach die Funktion PointPlot Befehl aus dem Statistik Paket mit dem style Option eingestellt auf line o pointline . Zum Beispiel:

Statistics:-PointPlot([2, 4, 6, 4], xcoords=[1, 2, 3, 4], style=pointline);

Angabe der Option style = pointline zeigt sowohl die Punkte als auch eine Verbindungslinie; style = line zeigt nur die Zeile.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X