r - 带有 geom_line 和 geom_ribbon 的图例

标签 r plot ggplot2

我正在创建一个图形,其中有一条线和周围的置信带。为此,我在 R 的 ggplot2 中使用了 geom_line 和 geom_ribbon 。问题是如何处理图例。其中添加了斜杠,经过谷歌搜索很长一段时间后,我明白这是一个常见问题。我发现的大多数解决方案都是针对条形图的(例如 ggplot 食谱)。我也找到了抑制它的解决方案,但这对我不起作用。

下面我用三个图显示了这个问题。首先,当我只绘制这条线时,它看起来不错。然后,当我添加绘图的功能区部分时,会添加斜杠。第三个图是我想要的样子(显然,除了斜杠)。我如何实现这一目标?

enter image description here

编辑:明确地说,我想要的是下图中的内容(我使用 MS Paint 修复了它):

enter image description here

library(ggplot2)
library(gridExtra)

set.seed(1)
y <- sin(seq(1, 2*pi, length.out = 100))
x <- 1:100
plotdata <- data.frame(x=x, y=y, lower = (y+runif(100, -1, -0.5)), upper = (y+runif(100, 0.5, 1)))
h1 <- ggplot(plotdata) + geom_line(aes(y=y, x=x, colour = "sin"))
h2 <- h1 + geom_ribbon(aes(ymin=lower, ymax=upper, x=x, colour = "bands"), alpha = 0.3)
h3 <- h2 + scale_colour_manual(name='', values=c("bands" = "grey", "sin" = "blue"))

grid.arrange(h1, h2, h3)

最佳答案

您可以制作单独的图例 - 一个用于线条的颜色,一个用于功能区的填充。然后使用 scale_... 将图例的名称设置为空白。唯一的问题是图例键将被分开。

ggplot(plotdata) + geom_line(aes(y=y, x=x, colour = "sin"))+
      geom_ribbon(aes(ymin=lower, ymax=upper, x=x, fill = "band"), alpha = 0.3)+
      scale_colour_manual("",values="blue")+
      scale_fill_manual("",values="grey12")

enter image description here

关于r - 带有 geom_line 和 geom_ribbon 的图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28714492/

相关文章:

r - R中的时间序列

r - 如何控制ggplot中线段的颜色

jquery - 删除数据表中的 'Show Entries'

R:计算特定事件之间的时间差

R:df 标题列按顺序排列并分布在每个观察的列中

r - 至少相差 30 分钟的子集观测值

python - 如何使用 Pandas 和离散轴绘制 hexbin? (或者,任何基于颜色的绘图)

Python 未在图中正确设置范围

r - 如何使用 ggplot2 绘制非标准化数据?

r - 如何在组合 ggplots 上添加线条,从一个图上的点到另一个图上的点?