Wie kann man die Punkte eines Streudiagramms nach der Aufzeichnung verbinden und eine Linie aus einem gepunkteten Diagramm erstellen?
Antworten
Zu viele Anzeigen?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.
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);
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.