tick name labs ggtitle ggplot change r ggplot2

name - ¿Cómo puedo extraer los rangos de los ejes de trazado para un objeto ggplot2?



r ggplot change legend labels (5)

Tengo un objeto de ggplot2 , digamos myPlot , ¿cómo puedo identificar los rangos para los ejes xey?

No parece ser un simple múltiplo del rango de los valores de datos, porque uno puede cambiar la escala de los gráficos, modificar los rangos de los ejes, y así sucesivamente. findFn (de sos ) y Google no parecen estar findFn resultados relevantes, aparte de cómo establecer los rangos de los ejes.


En la versión 2.2.0, esto tiene que hacerse de la siguiente manera:

# y-range ggplot_build(plot.object)$layout$panel_ranges[[1]]$y.range # x-range ggplot_build(plot.object)$layout$panel_ranges[[1]]$x.range


En las versiones más nuevas de ggplot2, puede encontrar esta información entre la salida de ggplot_build(p) , donde p es su objeto ggplot.

Para versiones anteriores de ggplot (<0.8.9), la siguiente solución funciona:

Y hasta que Hadley publique la nueva versión, esto podría ser útil. Si no establece los límites en el diagrama, no habrá información en el objeto ggplot. Sin embargo, en ese caso, puede usar los valores predeterminados de ggplot2 y obtener los valores xlim e ylim de los datos.

> ggobj = ggplot(aes(x = speed, y = dist), data = cars) + geom_line() > ggobj$coordinates$limits $x NULL $y NULL

Una vez que establece los límites, están disponibles en el objeto:

> bla = ggobj + coord_cartesian(xlim = c(5,10)) > bla$coordinates$limits $x [1] 5 10 $y NULL


Estoy usando ggplot2 versión 2, no estoy seguro de si esto es lo mismo que la versión anterior, supongamos que ha guardado su trazado en el objeto plt . Es fácil extraer los rangos

# y-range layer_scales(plt)$y$range$range # x-range layer_scales(plt)$x$range$range


Obtener el yrange con

ggplot_build(myPlot)$panel$ranges[[1]]$y.range

y el xrange con

ggplot_build(myPlot)$panel$ranges[[1]]$x.range


ACTUALIZAR

Actualmente uso ggplot2 versión 2.2.1.9000 (versión de desarrollo) y la forma en que se extraen los rangos de los valores del eje X y del eje y ha cambiado una vez más:

obj <- qplot(mtcars$disp, bins = 5) # x range ggplot_build(obj)$layout$panel_params[[1]]$x.range # y range ggplot_build(obj)$layout$panel_params[[1]]$y.range

MAYOR RESPUESTA

Actualmente estoy usando ggplot2 versión 2.1.0.9001 y noté que los rangos se pueden extraer usando una pieza ligeramente diferente de código R :

obj <- qplot(mtcars$disp, bins = 5) # x range ggplot_build(obj)$layout$panel_ranges[[1]]$x.range # y range ggplot_build(obj)$layout$panel_ranges[[1]]$y.range