我正在尝试使用ggplot2向图表添加多个色带,并标记阴影区域。例如,假设我正在尝试编写代码来生成正态分布的图形,并将所有值都高于某个值并低于某个值(遮蔽两个尾部)。
这是我到目前为止所做的:
library(ggplot2)
x<-seq(-3,3,length=100)
y1<-dnorm(x,mean=0,sd=1);
df<-data.frame(x,y1)
qplot(x,y1,data=df, geom="line")+geom_ribbon(data=subset(df,x > 2),
aes(ymax=y1),ymin=0, fill="red", colour=NA, alpha=0.5)
+geom_ribbon(data=subset(df,x < -2),
aes(ymax=y1),ymin=0, fill="red", colour=NA, alpha=0.5)
此代码将遮挡右尾,但不遮挡左侧。 (堆栈交换不允许我添加图片)
那么,如何在同一张图片中为其他尾部添加阴影?同样,我如何标记两个阴影部分?
答案 0 :(得分:0)
您可以使用annotate
功能添加标签:
p <- qplot(x,y1,data=df, geom="line") +
geom_ribbon(data=subset(df,x > 2),
aes(ymax=y1),ymin=0, fill="red", colour=NA, alpha=0.5) +
geom_ribbon(data=subset(df,x < -2),
aes(ymax=y1),ymin=0, fill="red", colour=NA, alpha=0.5)
p + annotate('text', x = c(-2.5,2.5), y = 0.07, label = c('lowest \n 2.5 %',
'highest \n 2.5 %'), col = 'red', alpha =0.5)