【发布时间】:2014-11-13 15:09:51
【问题描述】:
我希望使用下面提供的数据创建一个类似于下面第二张图片的图表。但是,我无法让线的宽度与轴“B”相对应,也无法从 datlines$width 中获取值。我想要的是 geom_hline(或者可能是 geom_ribbon?)从 data.frame“datlines”中读取宽度并创建一条宽度等于 datlines$width 中提供的数字的线。到目前为止,即使我在 geom_hlines 调用中指定“size = width”,我也无法使其工作。
有什么建议吗?即使我得到 size = width 部分来镜像我的 datlines data.frame,线的大小也不对应 y 轴。
如果我也必须告诉 ggplot2 灰色区域的上下边界,我会很好。
dat
A B C
1 1 2 Facet1
2 1 3 Facet2
3 2 4 Facet1
4 2 5 Facet2
datlines
int C width
1 3 Facet1 1.0
2 4 Facet2 0.5
下面第一张图的数据和代码
dat <- data.frame(A = c(1, 1, 2, 2), B = c(2, 3, 4, 5), C = c("Facet1", "Facet2"))
dat
datlines <- data.frame(int = c(3, 4), C = c("Facet1", "Facet2"), width = c(1, 0.5))
datlines
plot <- ggplot(dat, aes(x = A, y = B)) +
geom_hline(data = datlines, aes(yintercept = int), colour = "gray") + geom_point() + facet_grid(. ~ C)
plot
由我提供的代码生成的图表:
我想要的图表:
【问题讨论】: