2010-06-14 25 views
11

Ggplot2 ile oluşturulan bir çizimin tabanına dipnot eklemenin en iyi yolu nedir? Ben mantık bir arada burada kaydetti kullanarak denedim http://www.r-bloggers.com/r-good-practice-%E2%80%93-adding-footnotes-to-graphics/ yanı sıra ggplot2 Annotatesekmesindeki fonksiyonuggplot2 dipnot

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

ama as.data.frame.default hata "Hata (alıyorum x [[i]] , isteğe bağlı = TRUE, dizeleriAsFactors = dizelerAsFactors): sınıf c ("unit.arithmetic", "unit") bir data.frame içine zorlanamaz ".

+0

sen Ar arsa görüntülemek ama ggsave fonksiyonu ile çalışır gibi görünmüyor, bu çalışır. – user338714

+0

Sonra 'ggsave()' yerine uygun bir grafik aygıtı açın, örn., Pdf ("dosyaadı.pdf", width = 10, height = 6); baskı (s); grid.text (...); dev.off() ' – rcs

cevap

12

Böyle bir şeyi kullanır:

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

Bu harika çalışıyor - teşekkürler! – user338714

+2

Evet, bu mükemmel. Ayrıca, dipnotunuz için biraz daha fazla boşluk bırakmak için ggplot2'ye ihtiyacınız varsa, şunu deneyin: p + teması (plot.margin = birim (c (1,1,2,1), "satır")) – Owen

3

arsa doğrudan dipnot eklemek için() işlevini laboratuarları kullanın.

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