我想在 R 中生成的 3 面板分面网格图中添加一个脚注引用。这是一个脚注,用于记录数据源。理想情况下,我希望将它放在所有三个轴的下方和外部——最好是在左下方。
我正在使用ggplot2
和ggsave()
。这意味着我不能使用grid.text()
基于 - 的解决方案,因为它只在x11()
窗口上绘制,并且不能添加到 ggplot 对象中。
使用 insteadpng() ...code... dev.off()
似乎不是一个选项,因为我需要ggsave
调整大小参数,并且发现这个命令可以产生更好、更清晰的打印(这也更快,因为我没有打印到屏幕上)。
这是我的基本代码:
p1 <- ggplot(data, aes(date, value))
facet_grid(variable ~ .) + geom_point(aes(y =value), size=1) +
theme_bw() +
opts(title=mytitle)
print(p1)
ggsave("FILE.png",width=mywidth, height=myheight, p1, dpi=90)
我试过了:
p1 <- ggplot(data, aes(date, value))
facet_grid(variable ~ .) + geom_point(aes(y =value), size=1) +
theme_bw() +
opts(title=mytitle)
print(p1)
grid.text(unit(0.1,"npc"),0.025,label = "Data courtesy of Me")
grid.gedit("GRID.text", gp=gpar(fontsize=7))
ggsave("FILE.png",width=mywidth, height=myheight, p1, dpi=90)
这适当地将脚注放在 x11() 显示的左下角,在绘图之外,但不幸的是,由于它没有应用于 p1 对象,因此 ggsave 命令不会保存它。
我也试过:
p1 <- ggplot(data, aes(date, value))
facet_grid(variable ~ .) + geom_point(aes(y =value), size=1) +
theme_bw() +
opts(title=mytitle) +
annotate("text", label = "Footnote", x = 0, y = 10, size = 5, colour = "black") +
print(p1)
ggsave("FILE.png",width=mywidth, height=myheight, p1, dpi=90)
这使用 ggsave 成功打印,但是它有以下问题:
- 它在 3 个方面的每一个方面重复 3 次,而不是 1 次。
- 它包含在情节中,而不是在情节之外。
- 文本很难放置——似乎正在使用绘图单位(我的 x 轴是日期,所以 0 表示它在 1970 年左右)。
- 尽管我的 size 参数,文本大小似乎没有改变。
当我探索这个时,有几个相关的链接......
-
(不适用于 ggsave)
如何用另一个测试结果中的标签标记 ggplot 中的条形图?
(在情节内部,而不是外部/情节下方)
-
(不适用于 ggsave)