我想在我用R制作的3-panel facet网格图中添加一个脚注引用。这是一个脚注,以表扬数据来源。理想情况下,我希望它位于所有三个轴的下方和外部-最好是在左下角。
我使用的是ggplot2
和ggsave()
。这意味着我不能使用grid.text()
-based解决方案,因为它只在x11()
窗口上绘制,不能添加到x11()
对象中。
使用png() ...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成功打印,但它有以下问题:
我探索这篇文章的时候有几个相关的链接...
(不适用于ggsave)
(位于图内,而不是外部/在plot)
(不适用于ggsave)
发布于 2012-04-18 03:51:46
library(gridExtra)
library(grid)
library(ggplot2)
g <- grid.arrange(qplot(1:10, 1:10, colour=1:10) + labs(caption="ggplot2 caption"),
bottom = textGrob("grid caption", x = 1,
hjust = 1, gp = gpar(fontface = 3L, fontsize = 9)))
ggsave("plot.pdf", g)
编辑:请注意,此解决方案在某种程度上是对最近添加到ggplot2的标题参数的补充,因为textGrob可以相对于整个图形对齐,而不仅仅是绘图面板。
发布于 2017-02-17 07:33:01
ggplot2现在不需要额外的包就能实现这一功能。... + labs(caption = "footnote", ...)
library(ggplot2)
ggplot(diamonds, aes(carat, price, color = clarity)) +
geom_point() +
labs(title = "Diamonds are forever...",
subtitle = "Carat weight by Price",
caption = "H. Wickham. ggplot2: Elegant Graphics for Data Analysis Springer-Verlag New York, 2009.")
发布于 2018-04-04 17:49:51
补充到Brandon Bertelsen的回答:如果你想让标题出现在左角,添加
theme(plot.caption = element_text(hjust = 0))
https://stackoverflow.com/questions/10197738
复制相似问题