¿Cómo puedo obtener las coordenadas x , y de un geom_point en un ggplot , donde el marco de referencia es la imagen trazada completa?
Puedo crear un ggplot con algunos geom_point s usando:
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")
Esto da:
Al convertir esto en un grob , puedo extraer información adicional sobre este ggplot , como las coordenadas con respecto al panel de trazado, marcado por la flecha púrpura. Sin embargo, esto ignora el espacio ocupado por los ejes.
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
¿Cómo puedo obtener los valores de las coordenadas x , y cuando comienzo a medir desde la esquina inferior izquierda de toda la imagen, marcada con la flecha verde?
Si es posible, me gustaría que la solución tenga en cuenta el tema de ggplot . Agregar un tema como + theme_void()
afecta a los ejes y también cambia la ubicación de los puntos con respecto a toda la imagen trazada.
Actualización : me di cuenta de que el tamaño de fuente de los ejes cambia según el ancho y la altura de la gráfica, lo que afecta el tamaño relativo del panel de la gráfica . Por lo tanto, no será trivial proporcionar la ubicación en unidades npc sin definir el ancho y la altura del gráfico . Si es posible, proporcione la ubicación de los geom_points en función del ancho y la altura del gráfico .