Ggplot2'deki oklarla bir arsa oluşturmaya çalışıyorum, böyle bir şeye benzemekteyim ki bu taban R grapics kullanılarak yapıldı.ggplot2'de okların görünümü geom_segment()
library(ggplot2)
library(scales)
library(grid)
df3 <- structure(list(value1 = c(51L, 57L, 59L, 57L, 56L, 56L, 60L,
66L, 61L, 61L), value2 = c(56L, 60L, 66L, 61L, 61L, 59L, 61L,
66L, 63L, 63L), group = c("A", "B", "C", "D", "E", "A", "B",
"C", "D", "E"), time = c("1999", "1999", "1999", "1999", "1999",
"2004", "2004", "2004", "2004", "2004"), y_position = c(1L, 2L,
3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L)), .Names = c("value1", "value2",
"group", "time", "y_position"), row.names = c(NA, -10L), class = "data.frame")
ggplot(df3, aes(x = value1, y = y_position, group = time, color = time)) +
geom_segment(x = min(df3$value1, df3$value2), xend = max(df3$value1, df3$value2),
aes(yend = y_position), color = "lightgrey", size = 19) +
scale_y_continuous( labels = df3$group, breaks = df3$y_position) +
theme_classic() + theme(axis.line = element_blank(), axis.title = element_blank() ) +
geom_segment(aes(yend = y_position, xend = value2, color = time, group = time), size = 19, alpha = 0.9,
arrow = arrow(length = unit(40, "points"),type = "closed", angle = 40) )
Ben bu olsun: ggplot2 kullanma
(renkler önemli değildir)
sorun okları ki (yanlış bakmak olmasıdıronlar ilk arsa gibi görünmüyor). Geom_segment() kullanmak önemli değildir.
Bu soru cevabını verebilir ama az hacky bir şey umuyordum: Specifying gpar settings for grid arrows in R
İkinci oku, ilk olanın bittiği yerde otomatik olarak başlayabilir mi, yoksa bir şekilde bunu elle yapmak zorunda mıyım? –
Bunun kolayca Rasmus yapılabileceğini sanmıyorum. Okun sonunun gerçek xend konumunun ötesine geçtiğini fark ederseniz, ancak (yerel ölçekte) ne kadar uzakta öbek genişliğine bağlıdır. Öyleyse ikinci ok için başlangıç pozisyonunu belirlemek zor olurdu (eğer birisi nasıl olduğunu gösterebilirse harika olurdu). Belki de, ikinci oku birinci /? – user20650
@ user20650 Maalesef çok güzel bir cevabınız artık ggplot 2.2.0'da çalışmıyor gibi görünüyor. Cevabınızı güncellemek için herhangi bir zamanınız ve imkanınız varsa, çok takdir edilecektir. Şimdiden teşekkürler. – Henrik