Lattice
からxyplot()
を使用して、posi(数値)、(文字)から(文字)の3つの列を持つデータフレームによって定義されるプロット矢印。問題:時折、矢印はプロットのスケールを超えます。つまり、プロットウィンドウは、すべてのデータを視覚化するのに十分な大きさではありません。格子のxyplotはY軸上の因子のすべてのレベルを表示しません:不完全なプロット
私は因子レベルを明示的に追加してみましたが、役に立たなかった。より極端なレベル(「D」など)が因子「df $ from」に存在しない場合、それらはプロットウィンドウを描画するためにカウントされないように思われる。私はylim
を見ましたが、これは数値に限られています。
私はSOを見渡して、再スケーリング、軸の並び替えに関して多くを見つけましたが、手元の問題を手伝ってくれたものは何もありませんでした。この質問は、@skan:How to plot segments or arrows in Latticeの質問に関連しています。
マイデータ:予想通り
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)
)
このプロット:
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")
}
)
私は '古い' の要因と同じデータフレームの最初の3行を、使用レベルはそのままで、プロットは後で「D」レベルが必要になることを考慮していない。
が、私はY軸の制限を設定できるようにしたい、と任意のヘルプやヒントをいただければ幸いです。
## only first 3 rows, without element "D" in the factor df$from
df <- df[1:3, ]
このプロットになります。