Jak mogę uzyskać współrzędne x , y punktu geom w ggplocie , gdzie ramką odniesienia jest cały wykreślony obraz?
Mogę utworzyć ggplot z niektórymi punktami geom za pomocą:
library(ggplot2)
my.plot <- ggplot(data.frame(x = c(0, 0.456, 1), y = c(0, 0.123, 1))) +
geom_point(aes(x, y), color = "red")
To daje:
Konwertując to na grob , mogę wyciągnąć dodatkowe informacje o tym ggplocie , takie jak współrzędne w odniesieniu do panelu wykresu, oznaczone fioletową strzałką. Ignoruje to jednak przestrzeń zajmowaną przez osie.
my.grob <- ggplotGrob(my.plot)
my.grob$grobs[[6]]$children[[3]]$x
# [1] 0.0454545454545455native 0.46native 0.954545454545454native
my.grob$grobs[[6]]$children[[3]]$y
# [1] 0.0454545454545455native 0.157272727272727native 0.954545454545454native
Jak mogę uzyskać wartości współrzędnych x , y, kiedy zacznę mierzyć od lewego dolnego rogu całego obrazu, oznaczonego zieloną strzałką?
Jeśli to możliwe, chciałbym roztwór do uwzględnienia motyw z ggplot . Dodanie motywu podobnego + theme_void()
wpływa na osie, a także przesuwa położenie punktów w stosunku do całego drukowanego obrazu.
Aktualizacja : Zrozumiałem, że rozmiar czcionki osi zmienia się w zależności od szerokości i wysokości wykresu, wpływając na względny rozmiar panelu wykresu . Dlatego podanie lokalizacji w jednostkach NPC nie będzie trywialne bez zdefiniowania szerokości i wysokości wykresu . Jeśli to możliwe, podaj położenie punktów geom w zależności od szerokości i wysokości wykresu .