Jak*_*ake 3 r legend heatmap ggplot2
我正在尝试为包含负数的数据集制作热图:
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
Run Code Online (Sandbox Code Playgroud)
我用过这段代码:
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()))
Run Code Online (Sandbox Code Playgroud)
这会产生精细的热图,但图例并未考虑负数.颜色似乎正确反映负值,但图例停在零,即浅灰色.如何从中获取涵盖数据框"错误"列中所有数据的图例?
试试这个:
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())
Run Code Online (Sandbox Code Playgroud)
ggplot只是试图为你选择"好"的刻度,类似于选择轴刻度线的方式.(我将您的数据框名称更改为dat,这data是R中常用的函数.这不是一个大问题,但它避免了混淆.)
