Mar*_*ras 6 plot ribbon r ggplot2
我尝试在geom_ribbon我的ggplot2情节中添加一个对象.在我的数据框中,我有NA(我猜)可能会导致问题的值.这是我拥有的数据框架的可重现示例:
base <- c(1:10, rep(NA, 10))
output1 <- c(rep(NA, 9), 10 - 0:10)
output2 <- c(rep(NA, 9), 10 + 0:10)
xaxis <- 1:20
df <- data.frame(xaxis, base, output1, output2)
df
xaxis base output1 output2
1 1 1 NA NA
2 2 2 NA NA
3 3 3 NA NA
4 4 4 NA NA
5 5 5 NA NA
6 6 6 NA NA
7 7 7 NA NA
8 8 8 NA NA
9 9 9 NA NA
10 10 10 10 10
11 11 NA 9 11
12 12 NA 8 12
13 13 NA 7 13
14 14 NA 6 14
15 15 NA 5 15
16 16 NA 4 16
17 17 NA 3 17
18 18 NA 2 18
19 19 NA 1 19
20 20 NA 0 20
Run Code Online (Sandbox Code Playgroud)
我试图用以下方法绘制一个ggplot2对象geom_ribbon:
dfm <- melt(df, id=1)
ggplot(dfm, aes(x = xaxis, y = value, colour = variable)) +
geom_line(aes(group=variable)) +
geom_ribbon(data=df, aes(group = 1, ymin=output1, ymax=output2))
Run Code Online (Sandbox Code Playgroud)
并且,最终,我得到了一个我无法处理的错误:
Error in eval(expr, envir, enclos) : object 'variable' not found
Run Code Online (Sandbox Code Playgroud)
提前感谢您的任何建议.
Did*_*rts 15
你有这个错误,因为variable它用于aes()函数的颜色ggplot().当您添加geom_ribbon()新数据框时,geom_ribbon()尝试variable在新数据框中查找以将其用于颜色.要忽略此变量,请在inherit.aes=FALSE内部添加geom_ribbon()- 因此您要告知所有参数都应该独立进行 - 这是您应该x=xaxis重新设置的方式geom_ribbon().
ggplot(dfm, aes(x = xaxis, y = value, colour = variable)) +
geom_line(aes(group=variable)) +
geom_ribbon(data=df, aes(group = 1, x = xaxis,ymin=output1, ymax=output2),
inherit.aes=FALSE)
Run Code Online (Sandbox Code Playgroud)