具有受控颜色和阈值的 R 热图?
R Heatmap with controlled colors and thresholds?
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() 但我无法弄清楚用户设置的颜色。谢谢!
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()
函数和 values=c(colors you want go here) 和 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"))
希望对您有所帮助。
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() 但我无法弄清楚用户设置的颜色。谢谢!
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()
函数和 values=c(colors you want go here) 和 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"))
希望对您有所帮助。