从此question开始。
当x
是一个因素时,我无法生成阴影区域。
这是一些示例数据
time <- as.factor(c('A','B','C','D'))
x <- c(1.00,1.03,1.03,1.06)
x.upper <- c(0.91,0.92,0.95,0.90)
x.lower <- c(1.11,1.13,1.17,1.13)
df <- data.frame(time, x, x.upper, x.lower)
ggplot(data = df,aes(time,x))+
geom_ribbon(aes(x=time, ymax=x.upper, ymin=x.lower), fill="pink", alpha=.5) +
geom_point()
当我将factor
替换为aes()
时,我仍然无法获得阴影区域。或者如果我试试这个:
ggplot()+
geom_ribbon(data = df, aes(x=time, ymax=x.upper, ymin=x.lower), fill="pink", alpha=.5) +
geom_point(data = df, aes(time,x))
我仍然无法得到阴影。任何想法如何克服这个......
答案 0 :(得分:2)
我认为aosmith是完全正确的,你只需要将你的因子变量转换为数字。我认为以下代码是您正在寻找的:
ggplot(data = df,aes(as.numeric(time),x))+
geom_ribbon(aes(x=as.numeric(time), ymax=x.upper, ymin=x.lower),
fill="pink", alpha=.5) +
geom_point()
产生这个情节:
编辑编辑:在下面的评论中将x轴标签更改回@aosmith的原始值:
ggplot(data = df,aes(as.numeric(time),x))+
geom_ribbon(aes(x=as.numeric(time), ymax=x.upper, ymin=x.lower),
fill="pink", alpha=.5) +
geom_point() + labs(title="My ribbon plot",x="Time",y="Value") +
scale_x_continuous(breaks = 1:4, labels = levels(df$time))