Tenho um objeto de ggplot2
, digamos myPlot
, como posso identificar os intervalos dos eixos xey?
Não parece ser um simples múltiplo do intervalo dos valores dos dados, porque é possível redimensionar os gráficos, modificar os intervalos dos eixos e assim por diante. findFn
(de sos
) e o Google não parecem estar apresentando resultados relevantes, além de como definir os intervalos dos eixos.
expand
. Veja aqui .expand
argumento dasscale_*
funções emggplot
. Por exemplo, consulte os padrões listados aqui .ggplot_build(obj)$layout$panel_scales_x[[1]]$range$range
ggplot_build(obj)$layout$panel_scales_y[[1]]$range$range
Respostas:
Em versões mais recentes do ggplot2, você pode encontrar essas informações entre a saída de
ggplot_build(p)
, ondep
está seu objeto ggplot.Para versões mais antigas do ggplot (<0.8.9), a seguinte solução funciona:
E até que Hadley lance a nova versão, isso pode ser útil. Se você não definir os limites no gráfico, não haverá informações no objeto ggplot. No entanto, nesse caso, você pode usar os padrões de ggplot2 e obter xlim e ylim dos dados.
Depois de definir os limites, eles se tornam disponíveis no objeto:
fonte
ggplot2
versão 2.1.0.9001, use esteR
código:ggplot_build(obj)$layout$panel_ranges[[1]]$x.range
ggplot_build(obj)$layout$panel_ranges[[1]]$y.range
ggplot2
versão 2.2.1.9000 e (provavelmente) mais recente, use esteR
código:ggplot_build(obj)$layout$panel_scales_x[[1]]$range$range
ggplot_build(obj)$layout$panel_scales_y[[1]]$range$range
Estou usando a
ggplot2
versão 2, não tenho certeza se é a mesma da versão anterior, suponha que você salvou seu gráfico noplt
objeto. É fácil extrair os intervalos,No caso do gráfico de facetas, você pode acessar escalas de facetas individuais usando
layer_scales(plot, row_idx, col_idx)
. Por exemplo, para acessar a faceta na primeira linha e na segunda coluna,fonte
ylim
oucoord_cartesian
), a expansão da escala será aplicada a esses limites, em vez daqueles retornados pelo código fornecido aqui.ATUALIZAÇÃO DE novembro de 2018
A partir da
ggplot2
versão 3.1.0 , funciona o seguinte:Uma função de conveniência:
Até a próxima atualização ...
fonte
Obtenha o yrange com
e o xrange com
fonte
Na versão 2.2.0, isso deve ser feito da seguinte forma:
fonte
A partir de agosto de 2018, você extraiu os intervalos dos eixos xey com o seguinte.
ggplot_build(obj)$layout$panel_scales_x[[1]]$range$range
ggplot_build(obj)$layout$panel_scales_y[[1]]$range$range
fonte
Conforme mencionado aqui: https://gist.github.com/tomhopper/9076152#gistcomment-2624958 há uma diferença entre as duas opções:
Aqui está um conjunto de funções convenientes para obter uma lista de gráficos, extrair o intervalo comum do eixo y e substituí-lo. Eu precisava disso porque usei diferentes conjuntos de dados em um gráfico organizado por meio de
ggarange
:Achei que isso também poderia ser útil para outras pessoas.
fonte
stat_smooth( method = "lm")