3

我正在尝试为包含负数的数据集制作热图:

Ne      BR         Error  
10000   0.00001    1.62  
10000   0.000001  -1.03  
10000   0.0000001 -0.124  
100000  0.00001   36.73  
100000  0.000001   5.86  
100000  0.0000001 -0.79  
1000000 0.00001   -8.335  
1000000 0.000001  39.465  
1000000 0.0000001  2.59  

我用过这段代码:

library(ggplot2)  
data = read.csv('full_path')  
(p <- ggplot(data[1:9,], aes(Ne, BR)) +
  geom_tile(aes(fill=Error), colour="white") + 
  scale_fill_gradient(low="white", high="black") + scale_x_log('Ne') +    
  scale_y_log('Birth Rate') + opts(axis.ticks = theme_blank()))  

这会产生一个很好的热图,但图例没有考虑负数。颜色似乎正确反映了负值,但图例停在零处,即浅灰色。如何从中获得一个涵盖数据框“错误”列中全部数据范围的图例?

4

1 回答 1

7

试试这个:

ggplot(dat, aes(Ne, BR)) +
  geom_tile(aes(fill=Error), colour="white") + 
  scale_fill_gradient(low="white", high="black",breaks = seq(min(dat$Error),max(dat$Error),length.out = 5)) + scale_x_log('Ne') +    
  scale_y_log('Birth Rate') + opts(axis.ticks = theme_blank()) 

ggplot只是试图为您选择比例中的“不错”中断,类似于选择轴刻度线的方式。(我将您的数据框名称更改为dat,这data是 R 中常用的函数。这不是什么大问题,但可以避免混淆。)

在此处输入图像描述

于 2011-09-24T03:08:58.480 回答