2010-06-14 14 views
11

Cách tốt nhất để thêm chú thích cuối vào một ô được tạo bằng ggplot2 là gì? Tôi đã cố gắng sử dụng một sự kết hợp của logic lưu ý ở đây http://www.r-bloggers.com/r-good-practice-%E2%80%93-adding-footnotes-to-graphics/ cũng như chú thích ggplot2 chức năngggplot2 footnote

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

nhưng tôi nhận được lỗi "Lỗi trong as.data.frame.default (x [[i]] , optional = TRUE, stringsAsFactors = stringsAsFactors): không thể ép buộc lớp c ("unit.arithmetic", "unit") vào một data.frame ".

+0

Điều này có tác dụng nếu bạn xem cốt truyện bằng R nhưng có vẻ như nó không hoạt động với hàm ggsave. – user338714

+0

Sau đó, mở một thiết bị đồ họa thích hợp thay vì sử dụng 'ggsave()', ví dụ: 'pdf (" filename.pdf ", width = 10, height = 6); in (p); grid.text (...); dev.off() ' – rcs

Trả lời

12

Tôi sẽ sử dụng một cái gì đó như thế:

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

Điều này làm việc tuyệt vời - cảm ơn! – user338714

+2

Vâng, điều này thật tuyệt vời. Ngoài ra, nếu bạn cần ggplot2 để lại một chút lề cho chú thích của bạn, hãy thử điều này: p + theme (plot.margin = unit (c (1,1,2,1), "lines")) – Owen

3

Sử dụng các phòng thí nghiệm() để thêm một chú thích trực tiếp đến cốt truyện.

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