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(),但我无法弄清楚用户设置的颜色。谢谢!
答案 0 :(得分: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()[或你正在使用的任何热图函数]的情节
这里的假设是你不介意从黑色到道奇蓝色的流体刻度,因为连续值将沿着滑动刻度改变。如果你想首先创建一个虚拟变量,根据值将目标变量分配给一个组,那么你可以使用scale_color_manual()
函数,其值为= c(你想要的颜色去)和breaks = 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"))
希望有所帮助。