2011-05-06 12 views
5

En lugar de tener que repetir "altura = 4, ancho = 4, ppp = 72" con cada llamada. . .¿Hay alguna manera de establecer nuevos valores predeterminados para ggsave?

Una vez intenté la biblioteca (valores predeterminados) para un problema como este, pero no se comportó bien. Hice una pregunta al respecto en R-help, pero parecía que nadie lo usaba.

Parece que el par ("din") proviene del dispositivo X11 que tengo en ejecución, pero ese no será el dispositivo que usa ggsave() cuando lo llamo, no creo, porque Estoy guardando en .png o en .pdf. Los archivos PDF no son buenos para mis diagramas de dispersión y mosaico. Por supuesto, los archivos PDF escalan mucho mejor cuando los traigo a mi documento LaTeX, pero parece que este es un nivel de control deseable en general.

Gracias por sus ideas.

Respuesta

8

Puede que esta no sea la mejor manera, pero puede escribir una función de envoltura con diferentes valores predeterminados de altura y ancho. Por ejemplo

my.ggsave <- function(filename = default_name(plot), height= 4, width= 4, dpi= 72, ...) { 
ggsave(filename=filename, height=height, width=width, dpi=dpi, ...) 
} 

Ahora podemos probar para ver si my.ggsave hace lo que queremos que:

ggplot(data.frame(x=1:10), aes(x=x, y=x)) + geom_point() 
ggsave("normal_ggsave.png") 

y asegurarnos de que podemos pasar argumentos adicionales a ggsave si necesitamos:

my.ggsave("four_by_four_600.png", dpi=600) 
+0

¡Por supuesto! ¿Por qué no pensé en eso? Sería bueno si R tuviera un mecanismo para modificar los valores predeterminados de las funciones sin tener que saturar el espacio de nombres. Creo que esa es la idea detrás de 'library (Defaults)', pero no la he examinado de cerca para descubrir por qué ha quedado en el camino. ¡Gracias! –

Cuestiones relacionadas