r - ggplot 手动设置 scale_color_gradientn

标签 r colors ggplot2 gradient

我有一个这样的数据框

BP        R2      LOG10
96162057 0.2118000 2.66514431
96162096 0.0124700 0.31749391
96162281 0.0008941 0.07012148
96163560 0.5011000 2.48505399
96163638 0.8702000 3.37778598

我想根据 LOG10 绘制 BP,并通过 R2 为点着色。 R2 是 0-1 的连续值。
myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() 

到现在为止还挺好。但是,我想以手动选择的间隔和颜色显示 R2 颜色,就像这样(如果我有离散值)。
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() + 
      scale_color_manual(breaks= c("1","0.8","0.6","0.4","0.2","0"), 
                values = c("red","yellow","green","lightblue","darkblue"))
Error: Continuous value supplied to discrete scale

这看起来很漂亮,但我宁愿自己设置颜色。
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) + 
               scale_colour_gradientn(colours = rainbow(10))

那么,如何从连续值(1-0.8、0.8-0.6、0.6-0.4、0.4-0.2、0.2-0)中手动选择间隔,并根据我的喜好为它们着色(红色、黄色、绿色、浅色、深蓝色) ?颜色之间的平滑渐变会很酷,但不是关键。

最佳答案

您可以使用 scale_colour_gradientn()然后提供您自己的 colours=values= .值将给出每种颜色的间隔。

ggplot(myplot,aes(BP,LOG10, color = R2)) + geom_point() + 
  scale_colour_gradientn(colours = c("red","yellow","green","lightblue","darkblue"),
                         values = c(1.0,0.8,0.6,0.4,0.2,0)) 

gradientn chart example

关于r - ggplot 手动设置 scale_color_gradientn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18487369/

相关文章:

r - 突出情节中的几个点

java - Java 中 RGB 到 CIEXYZ

r - 彩色 geom_bar() 绘图

symfony - 在 Twig 中生成随机的十六进制颜色

c# - 将随机生成的颜色分配给值

r - 创建一个区域图,其中每个区域均匀填充实际点数?

r - ggplot2 段——x 轴为时间时的方向

c++ - Armadillo 使用的随机数生成器是什么?

regex - R - 需要使用正则表达式中的匹配对数据框进行子集化

r - tm::findAssocs 的数学这个函数是如何工作的?