我在ggplot中使用cowplot函数制作了几个绘图的卡住的绘图。 我想在Cowplot顶部添加一个“标题”,即一个带方框的文本。 它们应该是五个方框,每个方框的长度都遵循一个精确的时间范围,该时间范围仅显示在底部x轴上。
我尝试在牛图上添加注释,但什么也看不到。 我尝试为每个注释使用随机坐标,只是为了尝试。 比,我不知道该如何在文本框中加上文字。
答案 0 :(得分:1)
您不需要在cowplot
中添加此“标题面板”。您可以使用包tableGrob
制作一个grid
,然后通过cowplot::ggdraw()
将其与另一个图形组合。但这是不必要的。
在ggplot
本身中自定义这样的注释,然后在最后合并所有内容,会容易得多。
首先,我们为标题横幅创建一个数据框:
library(ggplot2)
rects <- data.frame(x=c(0,2,4), xmax=c(2,4,5), y=c(42, 42, 42), z=c("Flowering", "Fruiting", "Ripening"))
然后我们可以注释一些情节。请注意,我正在设置x和y轴的限制以匹配rects
数据框(或相反)。
ggplot(iris, aes(x=Sepal.Width)) +
geom_histogram(color="white") +
scale_x_continuous(limits=c(0, 5)) +
scale_y_continuous(limits=c(0, 50)) +
# add tiles
geom_rect(data=rects, aes(xmin=x, ymin=40, ymax=45, xmax=xmax, fill=z), inherit.aes = FALSE) +
# add labels
geom_text(data=rects, aes(x=x, y=y, label=z), hjust=0, inherit.aes = FALSE)
应该得到这样的东西:
从这里可以轻松更改此横幅,将不同的颜色映射到填充的美学效果,等等。最后,您将此预注释的图与cowplot
中的其余图合并。