我在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'着色。有什么想法吗?
答案 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)) + ...
? (没有给出可复制的例子,所以我没有对此进行测试。)