Anpassung der Grenzwerte der x-und y-Achse, beim hinzufügen von Kurven auf einem Grundstück in R
Ich habe zwei Datensätze (df1
und df2
), die eingetragen sind.
df1 = data.frame(x=c(1:10), y=c(1:10))
df2 = data.frame(x=c(0:13), y=c(0:13)^1.2)
# plot
plot(df1)
# add lines of another dataset
lines(df2)
Einige Werte df2
sind aus der plot-Bereich und damit nicht sichtbar. (In diesem Beispiel konnte ich nur ein Grundstück df2
ersten). Ich in der Regel versuchen, herauszufinden, die reicht meiner Daten, wie unten gezeigt.
# manual solution
minX = min(df1$x, df2$x)
minY = min(df1$y, df2$y)
maxX = max(df1$x, df2$x)
maxY = max(df1$y, df2$y)
plot (df1, xlim=c(minX, maxX), ylim=c(minY, maxY))
lines(df2)
Wenn man viele Datensätze, das wird dann nervig. Ich Frage mich, ob es eine einfachere Möglichkeit der Anpassung der Bereiche der Achse.
Im ersten Schritt R findet-Achse erstreckt sich. Gibt es auch eine Möglichkeit, die R passt die Achse reicht, wenn neue Datensätze Hinzugefügt werden?
- Zusammenführen der
data.frames
erstellen Sie eine gruppenvariable, verwenden Sieggplot2
. - Ich sehe nicht, hoew Zusammenführen dataframes unterschiedlicher Länge das problem löst. Was ist eine gruppenvariable? Wie würde die Lösung in ggplot2 (ich habe es nie benutzt, bevor)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie
range
zur Berechnung der Grenzen.Imho eine bessere Lösung:
Ich wie @Roland die Lösung, aber hier ist eine Erweiterung der @Glen_b die Lösung, die funktioniert für eine beliebige Anzahl von Datensätzen, wenn Sie haben Sie alle in einer Liste.
(Warnung: ungetestet!)
Davon ausgegangen, dass Sie möchten, dass alle Datensätze gezeichnet als Linien.
Wenn Sie starten wollen angeben, separate Farben, point-Typen-usw., Sie verlängern könnte diese Funktion-aber Sie würden beginnen werden, neu zu erfinden die
lattice
undggplot2
Pakete an diesem Punkt.(Wenn alle Datensätze die die gleiche Größe haben, sollten Sie
matplot
)Konnte man immer eine Funktion schreiben:
Dann werden Sie genau dies tun:
Wenn Sie wollen bekommen Sie Lust, können Sie sogar mit dem argument
...
und übergeben es an das Grundstück rufen.plotline
-Funktion nicht funktionieren würde. Was ist die...
argument in plot? oder meinst du das die eigenen Handlungsstrang-Funktion?...
argument, es ist ein Weg, der die übergabe von zusätzlichen Argumenten nach unten zu Dingen, die Ihre Funktion aufruft (in diesem Fall zur Handlung, also Handlung würde ermöglichen es Ihnen, die Dinge, die Grundstück können Sie festlegen). Siehe Abschnitt 10.4, "Eine Einführung in R".Blick auf die
matplot
Funktion, wird es akzeptieren, eine matrix als x -, y-oder beide, und alles tun, die automatische Auswahl Berechnungen für Sie. Wenn Sie die Daten in mehrere Daten-frames, dann Sie können verwenden Sie sapply zum extrahieren der Schlüssel Stücke und form der matricies.Dieser Ansatz ist oft sogar einfacher als die Verwendung der Zeilen-Funktion, die mehrere Male:
Oben ist noch einfacher, wenn alle Datenblöcke haben die gleiche Anzahl von Zeilen.
Anderen Ansatz, wie erwähnt, in den Kommentaren ist die Kombination der Datensätze zu einem einzigen Datensatz und verwenden Sie tools wie lattice Grafiken oder ggplot2:
Wenn alle Stricke reißen, können Sie die
zoomplot
Funktion aus der TeachingDemos Paket zu ändern, die Grenzen der Basis-Grafik, nach der Tat, aber die oben genannten Methoden sind viel besser.