2010-06-14 9 views
11

Was ist der beste Weg, um eine Fußnote auf den Boden eines Plots mit ggplot2 erstellt hinzufügen? Ich habe versucht, eine Kombination aus der Logik bemerkt hier http://www.r-bloggers.com/r-good-practice-%E2%80%93-adding-footnotes-to-graphics/ sowie die ggplot2 annotate Funktionggplot2 Fußnote

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

aber ich die Fehlermeldung „Fehler bei as.data.frame.default bekommen (x [[i]] , optional = TRUE, stringsAsFactors = stringsAsFactors): nicht-Klasse C ("unit.arithmetic", "unit") in eine data.frame“zwingen.

+0

Dies funktioniert, wenn Sie das Diagramm in R anzeigen, aber es sieht nicht aus wie es mit der Ggsave-Funktion funktioniert. – user338714

+0

dann eine entsprechende Grafikgerät öffnen anstatt mit 'ggsave()', z.B. 'pdf ("filename.pdf", Breite = 10, h = 6); Druck (p); grid.text (...); dev.off() ' – rcs

Antwort

12

würde ich so etwas verwenden:

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

Das funktioniert super - danke! – user338714

+2

Ja, das ist ausgezeichnet. Auch, wenn Sie ggplot2 brauchen ein wenig mehr Spielraum für Ihre Fußnote zu verlassen, versuchen Sie dies: p + Thema (plot.margin = Einheit (c (1,1,2,1), „Linien“)) – Owen

3

Mit den Labors() Funktion eine Fußnote direkt auf dem Grundstück hinzuzufügen.

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