我使用ggplot来制作我的大部分图片。这些可以是单面板,也可以是刻面。为了更容易跟踪修订,我想在图的角落生成一个包含一些文本的小标签。
在伪代码中,我正在寻找类似的东西:
# generate the initial plot
p <- ggplot()
# add the label
p + someAnnotationFunction(label = "Version 1.0", x = 1, y = 0,
hjust = "right", vjust = "bottom" )
# print
print(p)
或者:将我的标签贴在我的图的右下角,而不会弄乱现有的ggplot图形。
到目前为止,我找不到任何解决方案。如果您有一个完整的m x n
方面表,This(非常有趣)方法不起作用。使用gridExtra
的方法往往会过多地弄乱这些情节。那么,有没有人有办法在使用ggplot生成的图上的任何地方添加任意文本?
答案 0 :(得分:2)
根据Baptiste的评论,这是一个使用gridExtra()
的有效解决方案:
require("ggplot2")
require("gridExtra")
# set our working directory
working.dir <- '/Users/aclifton/Documents/projects/Rcode'
setwd(working.dir)
# create a data frame
df <- data.frame(x =runif(100, 1, 10),
y = runif(100, 1, 10))
#create a plot
p <- ggplot(data = df,
aes(x = x,
y = y)) +
geom_point()
print(p)
我们现在有了我们的情节,诀窍是添加该标签并使用ggsave()
保存整体情节:
# label to show
sub.label = textGrob("Some kind of label",
gp=gpar(fontsize=6),
x = unit(1, "npc"),
hjust = 1,
vjust = 0)
ggsave(filename=file.path(working.dir,'DemoPlot.png'),
plot = arrangeGrob(p,
sub = sub.label,
clip = FALSE),
scale = 1,
width = 6.5,
height = 3.5,
units = c("in"),
dpi = 300)
哪个给你这个:
答案 1 :(得分:1)
通过制作注释的数据框,您可以使用geom_text
将它们添加到地块的顶部。
note <- data.frame(xVarName = c(1, 5), yVarName = c(1, 10),
text = c("Version 1.0", "April 26, 2014")
p + geom_text(data = anno, aes(label = text))
&#34;版本1.0&#34;将显示在左下角和&#34; 2014年4月26日&#34;将显示在右上角。
通过在单独的数据框中创建笔记,您可以根据需要向一个图形添加多个笔记。