带有点和错误栏的ggplot范围内的颜色渐变

时间:2016-03-10 21:34:59

标签: r ggplot2

我在ggplot2中绘制了点和误差线的分布。

ggplot(data=mydata,aes(x=x,y=m,group=scen,color=x)) +
geom_point(aes(shape=scen),size=5,na.rm=TRUE,
       position=position_dodge(width=5)) +
geom_errorbar(aes(x=x,ymax=u,ymin=l),na.rm=TRUE,
    position=position_dodge(width=5),width=1.25,size=1.1) +
theme_bw() 

我想用渐变为它们着色,但是将颜色渐变限制在一定范围内。我设法使用:

ggplot(data=mydata,aes(x=x,y=m,group=scen,color=x)) +
geom_point(aes(shape=scen),size=5,na.rm=TRUE,
    position=position_dodge(width=5)) +
geom_errorbar(aes(x=x,ymax=u,ymin=l),na.rm=TRUE,
   position=position_dodge(width=5),width=1.25,size=1.1) +
theme_bw() +
scale_colour_gradient2(limits=c(-40, 40),
   low='darkred', mid='gray', high='darkblue') 

获得类似的内容:

我现在想要为较低的值(< -40)' darkred'和较高的值(> +40)' darkblue'着色。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

的内容如何
mydata <- transform(mydata,x_clamped=pmax(-40,pmin(40,x)))
ggplot(data=mydata,aes(x=x,y=m,group=scen,color=x_clamped)) + ...

? (没有给出可复制的例子,所以我没有对此进行测试。)