2010-06-14 9 views
11

ggplot2로 만든 플롯의 맨 아래에 각주를 추가하는 가장 좋은 방법은 무엇입니까? 나는 논리의 조합에 주목하여 시도했습니다 http://www.r-bloggers.com/r-good-practice-%E2%80%93-adding-footnotes-to-graphics/뿐만 아니라 ggplot2의 주석 기능ggplot2 각주

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))) 

하지만 as.data.frame.default의 오류 "오류 (무엇입니까 X [[I]] , optional = TRUE, stringsAsFactors = stringsAsFactors) : 클래스 c ("unit.arithmetic", "unit")를 data.frame으로 강제 변환 할 수 없습니다.

+0

R에서 플롯을 볼 때 작동하지만 ggsave 기능으로 작동하지 않는 것처럼 보입니다. – user338714

+0

그런 다음'ggsave()'대신에 적절한 그래픽 장치를여십시오 (예 :'pdf ("filename.pdf", width = 10, height = 6); 인쇄 (p); grid.text (...); dev.off()' – rcs

답변

12

는 그 같은 것을 사용하는 것이 :

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

위대한 작품입니다 - 감사합니다! – user338714

+2

예, 훌륭합니다. 또한 ggplot2를 사용하여 각주에 약간의 여백을 남기려면 다음을 시도하십시오. p + theme (plot.margin = unit (c (1,1,2,1), "lines")) – Owen

3

는 플롯에 직접 각주를 추가() 함수 실험실을 사용합니다.

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