Ich verwende xyplot()
aus Lattice
, um Pfeile zu zeichnen, die durch einen Datenrahmen mit 3 Spalten definiert sind: posi (numerisch), von (Zeichen) bis (Zeichen). Das Problem: Gelegentlich gehen die Pfeile über den Maßstab der Handlung hinaus. Mit anderen Worten, das Diagrammfenster ist nicht groß genug, um alle Daten zu visualisieren.Gitter xyplot zeigt nicht alle Ebenen des Faktors auf der Y-Achse an: unvollständiges Diagramm
Ich habe versucht, die Faktorstufen explizit hinzuzufügen, ohne Erfolg. Es scheint, dass, wenn die extremeren Ebenen (z. B. "D") in dem Faktor "df $ from" nicht vorhanden sind, diese nicht gezählt werden, um das Diagrammfenster zu zeichnen. Ich schaute auf ylim
, aber dies ist auf numerische Werte beschränkt.
Ich habe mich auf SO umgeschaut, und fand eine Menge über Neuskalierung, Nachbestellung Achsen, aber nichts, das mir mit dem Problem zur Hand geholfen. Diese Frage bezieht sich auf eine Frage von @skan: How to plot segments or arrows in Lattice.
Meine Daten:
l <- c("A", "B", "C", "D")
df <- data.frame(posi = c(1, 2, 3, 4, 5),
from = factor(c("A", "B", "C", "D", "A"), levels = l, ordered = TRUE),
to = factor(c("C", "D", "D", "C", "A"), levels = l, ordered = TRUE)
)
Diese Plots wie erwartet:
xyplot(from ~ posi , type="p", col="black", data=df, pch=16, xlim = c(0,7),
panel = function(...){
panel.dotplot(x = df$posi, y = df$from, col ="green", cex=1.6)
panel.dotplot(x = (df$posi+1), y = df$to, col="black", cex=1.)
panel.arrows(x0 = df$posi, y0 = df$from, x1 = df$posi+1, y1 = df$to, lwd=2, col="blue")
}
)
Wenn ich nur die ersten drei Reihen, von dem gleichen Datenrahmen mit 'altem' Faktor Ebenen intakt, die Handlung berücksichtigt nicht, dass später ein "D" -Niveau benötigt wird.
## only first 3 rows, without element "D" in the factor df$from
df <- df[1:3, ]
was zu diesem Grundstück:
ich will, die Grenzen der Y-Achse einstellen zu können und würde jede mögliche Hilfe oder Hinweis zu schätzen wissen.