1

我正在尝试使用 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)

此代码将遮蔽右尾,但不会遮蔽左尾。(堆栈交换不允许我添加图片)

那么,如何为同一张图片中的另一条尾巴添加阴影呢?同样,如何标记两个阴影部分?

4

1 回答 1

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) 
于 2013-07-11T07:26:28.320 回答