Como posso obter as coordenadas x , y de um geom_point em um ggplot , onde o quadro de referência é toda a imagem plotada?
Eu posso criar um ggplot com alguns 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")
Isto dá:
Ao converter isso em um grob , posso extrair algumas informações adicionais sobre este ggplot , como as coordenadas em relação ao painel de plotagem, marcadas pela seta roxa. No entanto, isso ignora o espaço ocupado pelos eixos.
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
Como posso obter os valores das coordenadas x , y quando começo a medir no canto inferior esquerdo de toda a imagem, marcado pela seta verde?
Se possível, eu gostaria que a solução levasse em consideração o tema do ggplot . Adicionar um tema como + theme_void()
afeta os eixos e também altera a localização dos pontos em relação a toda a imagem plotada.
Atualização : percebi que o tamanho da fonte dos eixos muda dependendo da largura e altura da plotagem, afetando o tamanho relativo do painel da plotagem . Portanto, não será trivial fornecer a localização em unidades npc sem definir a largura e a altura da plotagem . Se possível, forneça a localização dos geom_points como uma função da largura e altura da plotagem .