我正在尝试使用ggplot2
创建热图(您会看到下面的代码)
现在有两件事我想改变:
我想在图例中显示6个以上的值。我试过,例如打破,标签,但这不起作用
(p <- ggplot(dataPVal.m, aes(variable, structure)) +
geom_tile(aes(fill = pValue), colour = "white") +
scale_colour_gradientn(colour = rainbow(100), breaks = c(1,2,3,4,5,6), labels =c("a","b","c","d","e","f")) +
theme_grey(base_size = base_size) +
labs(x = "position (0=seed start)",y = "structure") + ## labels
#scale_x_discrete(expand = c(0.01, 0.01)) + ## grauer rand oben/unten
#scale_y_discrete(expand = c(0.01, 0.01)) + ## grauer rand links/rechts
opts(title=plot_title,legend.position = "left",axis.ticks = theme_blank(), axis.text.x = theme_text(size = base_size * 0.8, angle = 330, hjust = 0, colour = "grey50"))
)
这是pValue-table(dataPVal.m)的一个例子:
structure variable value pValue 1 CB -10 1.00000000 1.00000000 2 BB -10 1.00000000 1.00000000 3 SC -10 0.34700205 0.34700205 4 GC -10 1.00000000 1.00000000 5 BC -10 1.00000000 1.00000000 6 SG -10 0.44494198 0.44494198 7 JG -10 1.00000000 1.00000000 8 IG -10 1.00000000 1.00000000 9 HG -10 1.00000000 1.00000000 10 CG -10 1.00000000 1.00000000 11 HH -10 1.00000000 1.00000000 12 GH -10 0.34375000 0.00000025 13 SI -10 0.25000000 0.25000000 14 JI -10 0.40359735 0.40359735 15 II -10 1.00000000 1.00000000 16 GI -10 1.00000000 1.00000000 17 SJ -10 0.53296021 0.53296021 18 IJ -10 1.00000000 1.00000000 19 GJ -10 1.00000000 1.00000000 20 US -10 0.19567557 0.19567557 21 SS -10 0.43017585 0.00000032 22 JS -10 1.00000000 1.00000000 23 IS -10 1.00000000 1.00000000 24 GS -10 1.00000000 1.00000000 25 CS -10 1.00000000 1.00000000 26 UU -10 0.39863089 0.39863089 27 SU -10 0.50000000 0.50000000 28 JU -10 1.00000000 1.00000000 29 CB -9 0.34944171 0.34944171 30 BB -9 1.00000000 1.00000000 31 SC -9 0.53230531 0.53230531
有没有人解决这两个问题?
THX 这么久
答案 0 :(得分:8)
当我插入
+ scale_fill_gradient( trans = 'log' ) +
在geom_tile(...)
之后它确实将填充比例更改为对数,并且pValue
(e^0, e^(-2),...e^(-14)
)有8个图例条目。那是你试过的吗?