Mit*_*ops 27 annotations r ggplot2 r-grid
我想在我在R中制作的3面小平面网格图中添加一个脚注引用.这是一个信用数据源的脚注.理想情况下,我希望它位于所有三个轴的下方和外部 - 最好是在左下方.
我使用的ggplot2也是ggsave().这意味着我不能使用grid.text()基于x11()-based 的解决方案,因为它只能在窗口上绘制,而不能添加到ggplot对象中.
使用相反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)
Run Code Online (Sandbox Code Playgroud)
我试过了:
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)
Run Code Online (Sandbox Code Playgroud)
这适当地将脚注放在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)
Run Code Online (Sandbox Code Playgroud)
这使用ggsave成功打印,但它有以下问题:
当我探索这个时,有几个相关的链接......
(不适用于ggsave)
(在图中,不在外部/下图)
(不适用于ggsave)
Bra*_*sen 39
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.")
Run Code Online (Sandbox Code Playgroud)
bap*_*ste 32
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)
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,此解决方案与添加到ggplot2的最近标题参数有些互补,因为textGrob在这里可以与整个图形对齐,而不仅仅是绘图面板.
在布兰登·贝特尔森(Brandon Bertelsen)的答案中添加:如果您想在左角添加标题,请添加
theme(plot.caption = element_text(hjust = 0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23835 次 |
| 最近记录: |