Ggplot'ta ok çizmek için geom_segment ve arrow = arrow() kullanın. Ok başı boyutunun segment genişliğine (veya boyutuna) uymasını istiyorum. Ancak, ok, ggplot'ta doğrudan veri bağımsız değişkeninden değişkenleri tanımıyor ve biri $ işlecini kullanarak değişkeni içeren data.frame'i belirtmelidir. Bu, çizginin çizilmesi için kullanılan değerler ile ok başının çizilmesi için kullanılan değerler arasında en küçük ok başı olabilir (en büyük ok başı en ince segmentte olabilir).ggplot2 içinde ok başı eşleştirme boyutu oluşturma (veya lwd)
Örnek:
d <- structure(list(Process = structure(c(2L, 1L, 1L, 1L, 2L, 2L,
1L, 1L, 2L, 1L, 2L), .Label = c("First", "Second"), class = "factor"),
x.sink = c(1, 3, 1, 2, 2, 3, 3, 2, 2, 2, 2), y.sink = c(1,
1, 1, 2, 2, 1, 1, 1, 1, 2, 2), x.source = c(2, 2, 2, 2, 2,
2, 2, 1, 1, 1, 3), y.source = c(2, 2, 2, 1, 1, 1, 1, 1, 1,
2, 1), offset = c(1, 1, 1, -1, -1, -1, -1, -1, -1, 1, -1),
Std.Flux = c(0.179487179487179, 0.170940170940171, 0.944444444444444,
0.0854700854700855, 0.726495726495726, 0.128205128205128,
0.213675213675214, 0.213675213675214, 0.128205128205128,
0.106837606837607, 1)), .Names = c("Process", "x.sink", "y.sink",
"x.source", "y.source", "offset", "Std.Flux"), class = "data.frame", row.names = c(NA,
-11L))
p <- qplot(data=d,
#alpha=I(0.4),
colour=Process,
size=Std.Flux,
xlim=c(0,4),
ylim=c(0,3),
x=x.source+as.numeric(Process)/10,
y=y.source+as.numeric(Process)/10,
xend=x.sink+as.numeric(Process)/10,
yend=y.sink+as.numeric(Process)/10,
geom="segment",
arrow = arrow(type="closed",
length = unit(d$Std.Flux,"cm")))
print(p)
herhangi bir öneriniz?
; github – baptiste