【问题标题】:R Heatmap with controlled colors and thresholds?R 具有受控颜色和阈值的热图?
【发布时间】:2017-01-11 22:44:07
【问题描述】:
Test1  Test2  Test3 Test4  Test5
0.048  0.552  0.544 1.0000 0.604
0.518  0.914  0.948 0.0520 0.596
0.868  0.944  0.934 0.3720 0.340
0.934  0.974  0.896 0.1530 0.090
0.792  0.464  0.096 0.7050 0.362
0.001  0.868  0.050 0.3690 0.380
0.814  0.286  0.162 0.0040 0.092
0.146  0.966  0.044 0.4660 0.726
0.970  0.862  0.001 0.4420 0.020
0.490  0.824  0.634 0.5720 0.018
0.378  0.974  0.002 0.0005 0.004
0.878  0.594  0.532 0.0420 0.366
1.000  1.000  1.000 0.3550 1.000
1.000  1.000  1.000 0.3170 1.000
1.000  1.000  1.000 0.3900 1.000
0.856  0.976  0.218 0.0005 0.001
1.000  1.000  1.000 0.4590 1.000
1.000  1.000  1.000 0.5770 1.000
0.640  0.942  0.766 0.0005 0.320
1.000  1.000  1.000 0.0830 1.000
0.260  0.968  0.032 0.0480 0.300
0.150  0.480  0.108 0.0005 0.008
0.686  0.150  0.400 0.0200 0.060
0.002  0.346  0.004 0.0005 0.098

我想为我的价值观制作一张 24 x 5 的热图。我想根据自己的阈值设置颜色。例如,我希望所有 1.000 个值都是黑色的。我希望 0.500-0.999 之间的所有值都是非常浅的蓝色。我希望所有 0.300-0.499 的值都略带深蓝色。所有值 0.15-0.299 稍暗。所有值 0.10-0.149 稍暗,所有值 0.5-0.099 稍暗,所有值 0.025-0.049 稍暗,所有值 0-0.024 最暗。我曾尝试使用 ggplot 和 heatmap() 但我无法弄清楚用户设置的颜色。谢谢!

【问题讨论】:

  • 请出示您目前拥有的代码

标签: r matrix heatmap


【解决方案1】:

ggplot 中的 scale_color_gradient2() 函数应该可以正常工作。这部分函数的语法是

p+scale_color_gradient(low='black',high='dodgerblue',mid='blue',midpoint=0.500,
    limits=c(0,1))

其中 p 是您的 ggplot()+geom_tile() [或您正在使用的任何热图函数] 中的绘图

这里的假设是您不介意从黑色到深蓝色的流动刻度,因为连续值将沿着该滑动刻度发生变化。如果您想首先创建一个基于值将目标变量分配给组的虚拟变量,那么您可以使用带有 values=c(colors you want go here) 和 breaks= 的 scale_color_manual() 函数c(您创建的 bin 的值放在这里)。像这样[简化,而不是您概述的存储桶总数]--

p<-ggplot(dataset,aes(x=x,y=y,color=binned.var)+geom_tile()+
     scale_color_manual(values=c("darkblue","blue","dodgerblue","black"),
                        breaks=c("bin1","bin2","bin3","bin4"),
                        labels=c("0-0.024","0.025-0.049","0.05-0.099","0.10-0.149"))

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2021-09-18
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多