在绘制figure时,有连续性变量赋值时常常要用colorbar表示值的大小,如果有特殊的界值(如Pvalue<0.05, OR>1),需要将中间值单独设置个颜色作为区分。以我的自建数据集为例。
当不设置区分时
ggplot(data = dat1,aes(x = Dictionary.element,y = log(OR),color=-log(FDR))) +
geom_point() +
theme_bw()+
geom_hline(yintercept = 1,color="red",linetype="dotted")+
labs(x="Dictionary element",y="OR (95%CI)-log transformed")
此时无法判断哪个点为有意义。scales包中的scale_color_gradient2可以解决这个问题。
ggplot(data = dat1,aes(x = Dictionary.element,y = log(OR),color=-log(FDR))) +
geom_point() +
theme_bw()+
geom_hline(yintercept = 1,color="red",linetype="dotted")+
labs(x="Dictionary element",y="OR (95%CI)-log transformed")+
scale_color_gradient2(midpoint = 3, mid = "white",
high = muted("red"), low = muted("blue"),
guide = "colourbar", space = "Lab")
2)方法二,scale_fill_gradientn
ggplot(data = dat1,aes(x = group,y = log(OR),color=-log(FDR))) +
geom_point() +
theme_bw()+
geom_hline(yintercept = 1,color="red",linetype="dotted")+
labs(x="Dictionary element",y="OR (95%CI)-log-
transformed")+scale_color_gradientn(colours = c("blue","white","red"), values =
rescale(c(1,3,15)),guide = "colorbar", limits=c(1,15))
想要设置对称时,可以修改limit和rescale范围,如
scale_color_gradientn(colours = c("blue","white","red"), values = rescale(c(-9,3,15)),guide = "colorbar", limits=c(-9,15))
Reference:
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务