Örneğin bir noktadan oluşan bir ggplot verildiğinde, belirli bir noktanın karşılık geldiği veri sırasını nasıl bulursunuz?ggplot2 kornalarını tekrar veriye nasıl bağlarım?
Örnek bir arsa:
library(ggplot2)
(p <- ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
facet_wrap(~ gear)
)
Biz grid.ls
+ grid.get
ile noktalarının içeren Grobs alabilirsiniz.
grob_names <- grid.ls(print = FALSE)$name
point_grob_names <- grob_names[grepl("point", grob_names)]
point_grobs <- lapply(point_grob_names, grid.get)
Bu son değişken x-y koordinatlarının detayları ve pointsize vb (unclass(point_grobs[[1]])
deneyin) içerir, ama her bir noktanın tekabül mtcars
veri satır elde nasıl açık değildir.
neden bu yapıyorum ben interaktif bir dağılım grafiğini oluşturmak için
gridSVG
kullanıyorum yaklaşık Kohske en soruyu cevaplamak için. Fareyi bir noktaya yuvarladığınızda, bağlamsal bilgileri görüntülemek istiyorum. Mtcars örneğinde, veri çerçevesinin o satırından arabanın adı veya diğer değerler ile bir araç ipucu gösterebilirdim.
mtcars$id <- seq_len(nrow(mtcars))
p + geom_text(aes(label = id), colour = NA)
Sonra metin Grob gelin Grob gelen Grobs ağacı çapraz ve veri kümesi satırını görüntüler:
Benim hacky fikri şu ana kadar görünmez bir metin etiketi olarak bir id
sütunu dahil etmektir etiket tarafından endekslendi.
Bu çok genel ve çok genellenebilir değil. id
değerini grob noktasında saklamanın bir yolu varsa, daha temiz olacaktır.
Kolay bir yol yok. Son hedefiniz nedir? Alternatifler olabilir. – kohske
@kohske: Bir yorum için çok uzun, bu yüzden ne yaptığımı açıklamak için soruyu güncelledim. –
Çok ilginç. Amacını anlıyorum. Ne yazık ki, verilere grob aracılığıyla ulaşmanın hiçbir yolu yoktur (muhtemelen bir sonraki sürümde bile). Ancak belki de veriler hakkında bilgi sahibi olmak yararlı olacaktır (özellikle "stat =" kimlik "olduğunda). Tartışacağım. – kohske