Gewusst wie: zeichnen von Linien auf ein Grundstück in R?
Ich brauche zum zeichnen von Linien aus den gespeicherten Daten in eine text-Datei.
Bisher bin ich in der Lage, nur ziehen Sie die Punkte auf einem Diagramm aus und ich möchte Sie haben als Linien (line graph).
Hier der code:
pupil_data <- read.table("C:/a1t_left_test.dat", header=T, sep="\t")
max_y <- max(pupil_data$PupilLeft)
plot(NA,NA,xlim=c(0,length(pupil_data$PupilLeft)), ylim=c(2,max_y));
for (i in 1:(length(pupil_data$PupilLeft) - 1))
{
points(i, y = pupil_data$PupilLeft[i], type = "o", col = "red", cex = 0.5, lwd = 2.0)
}
Bitte helfen Sie mir, ändern Sie diese Zeile von code:
points(i, y = pupil_data$PupilLeft[i], type = "o", col = "red")
zum zeichnen von Linien aus den Daten.
Hier werden die Daten in die Datei:
PupilLeft
3.553479
3.539469
3.527239
3.613131
3.649437
3.632779
3.614373
3.605981
3.595985
3.630766
3.590724
3.626535
3.62386
3.619688
3.595711
3.627841
3.623596
3.650569
3.64876
Warum würden Sie die
hinzufügen eines
Daten:PupilLeft3.553479 3.539469 3.527239 3.613131 3.649437 3.632779 3.614373 3.605981 3.595985 3.630766 3.590724 3.626535 3.62386 3.619688 3.595711 3.627841 3.623596 3.650569 3.64876
Ich habe versucht, sowohl die Lösungen, aber es kommt nichts heraus, wenn ich 'lines()'. Das gleiche passiert mit 'type='l" in der 'plot()' fcn, während Sie mit den Linien danach.
es ist Ihre Schleife, die fouls von code. Siehe meine überarbeitete Antwort.
points
Funktion, wenn Sie zeichnen wollten lines
?hinzufügen eines
type='l'
in Ihrem plot()
Funktion und verwenden Sie die lines()
aftwerards.Daten:PupilLeft3.553479 3.539469 3.527239 3.613131 3.649437 3.632779 3.614373 3.605981 3.595985 3.630766 3.590724 3.626535 3.62386 3.619688 3.595711 3.627841 3.623596 3.650569 3.64876
Ich habe versucht, sowohl die Lösungen, aber es kommt nichts heraus, wenn ich 'lines()'. Das gleiche passiert mit 'type='l" in der 'plot()' fcn, während Sie mit den Linien danach.
es ist Ihre Schleife, die fouls von code. Siehe meine überarbeitete Antwort.
InformationsquelleAutor pjercic | 2012-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig, R zeichnet einen einzelnen Vektor als y-Koordinaten, und verwenden Sie eine Sequenz für die x-Koordinaten. So, um den plot nach, alles, was Sie brauchen, ist:
Haben Sie nicht, sofern der Beispiel-Daten, aber Sie können sehen, diese mit der integrierten iris-data-set:
Bedeutet dies in der Tat zeichnen Sie die Punkte mit Linien. Wenn Sie sind eigentlich immer Punkte ohne Linien, benötigen Sie ein funktionierendes Beispiel mit deinen Daten, um herauszufinden, warum.
EDIT:
Ihre original-code funktioniert nicht, weil die Schleife. Sie sind in der Tat Fragen, R zu zeichnen eine Linie mit einem einzigen Punkt, um sich jedes mal durch die Schleife. Das nächste mal durch die Schleife R nicht wissen, dass es andere Punkte, die Sie wollen, verbunden; wenn Sie das täte, würde dies das vorgesehene Nutzung
points
, das hinzufügen von Punkten/Linien zu einem bestehenden plot.Natürlich die Verbindungslinie von einem Punkt zu sich selbst nicht wirklich sinnvoll, und so ist es nicht eingezeichnet (oder aufgetragen ist zu klein, um zu sehen, Gleiches Ergebnis).
Deinem Beispiel ist die meisten leicht getan werden, ohne eine Schleife:
Wenn Sie wirklich tun müssen, verwenden Sie eine Schleife, dann die Codierung wird mehr beteiligt. Ein Ansatz wäre die Verwendung von einem Verschluss:
Können Sie dann wickeln Sie die
myaddpoint
rufen Sie in der for-Schleife mit dem, was Sie testen müssen, um zu entscheiden, ob oder nicht Sie tatsächlich Handlung diesem Punkt. Die Funktion zurückgegeben, die vonmakeaddpoint
wird verfolgen die Handlung, die Indizierung für Sie.Dies ist die normale Programmierung für Lisp-ähnliche Sprachen. Wenn Sie finden es verwirrend, können Sie dies tun, ohne einen Verschluss, aber Sie müssen zu behandeln, Inkrementieren Sie den index ein und speichern Sie die vorherigen Punkt Wert 'manuell' in der Schleife.
pupil_data$PupilLeft[i]
. Sofern ich die Daten in die OPZeichnen Sie eine Linie, indem die Schleife durch die Punkte und zeichnen Sie nacheinander in die Hand einfach nicht, wie Ihre getan in R. (Für die, es wäre schrecklich ineffizient.) Wenn Sie brauchen, um die Daten zu verarbeiten, tun, erste, dann plot als Tyler gezeigt hat.
Wie es gemacht wird, ist nicht RELEVANT für mich. Ich möchte einfach ein Liniendiagramm, wo die Linien verbinden Punkte, die ich extrahiert mit
pupil_data$PupilLeft[i]
. Also ich habe einen Punkt, den ich brauche, um eine Verbindung zu einem anderen Punkt mit einer Linie, und wiederholen Sie diesen Prozess in einer Schleife.+1 für deine Geduld mit der OP...
InformationsquelleAutor Tyler
Gibt es eine starke Abneigung unter den erfahrenen R-Programmierer zur Verwendung von for-Schleifen, wenn Sie nicht wirklich gebraucht. Dies ist ein Beispiel für eine loop-weniger Verwendung von eine vektorisierte Funktion namens Segmente, die 4 Vektoren als Parameter: x0,y0, x1,y1
InformationsquelleAutor 42-