2010-06-14 22 views
11

¿Cuál es la mejor manera de agregar una nota al pie de una gráfica creada con ggplot2? He intentado usar una combinación de la lógica señalar aquí http://www.r-bloggers.com/r-good-practice-%E2%80%93-adding-footnotes-to-graphics/ así como la función de anotar ggplot2ggplot2 nota al pie

p + annotate("text",label="Footnote", 
    x=unit(1,"npc") - unit(2, "mm"),y=unit(2, "mm"), 
    just=c("right", "bottom"),gp=gpar(cex= 0.7, col=grey(.5))) 

pero estoy consiguiendo el error de error" en as.data.frame.default (x [[i]] , opcional = TRUE, stringsAsFactors = stringsAsFactors): no se puede forzar la clase c ("unidad.aritmética", "unidad") en un data.frame ".

+0

Esto funciona si ve el diagrama en R pero no parece que funcione con la función ggsave. – user338714

+0

Luego abra un dispositivo gráfico apropiado en lugar de usar 'ggsave()', por ejemplo, 'pdf (" filename.pdf ", width = 10, height = 6); imprimir (p); grid.text (...); dev.off() ' – rcs

Respuesta

12

me gustaría utilizar algo así:

pdf("filename.pdf", width=10, height=6) # open an appropriate graphics device 
print(p) 
makeFootnote() # from webpage above (uses grid.text; ggplot2 is based on grid) 
dev.off() 
+0

Esto funciona genial, ¡gracias! – user338714

+2

Sí, esto es excelente. Además, si necesita ggplot2 para dejar un poco más de margen para su nota al pie, intente esto: p + theme (plot.margin = unit (c (1,1,2,1), "lines")) – Owen

3

Utilice los laboratorios de función() para añadir una nota al pie directamente a la trama.

p <- ggplot(mtcars, aes(mpg, wt, colour = cyl)) + 
    geom_point() 
p + labs(caption = "(Pauloo, et al. 2017)") 
Cuestiones relacionadas