ggplot2中ggfluctuation的颜色范围

时间:2013-03-01 20:27:46

标签: r ggplot2

我正在尝试使用ggfluctuationggplot2的两张热图。热图的两个表具有不同的最大值(假设为0.8和0.9)。为了使它们具有可比性,我想知道如何使它们的颜色从0变为1。

1 个答案:

答案 0 :(得分:3)

不要使用ggfluctuation;它已被弃用。您可以使用geom_tile()实现您想要的效果,如下所示。如果您有多个绘图,请创建一个颜色比例并依次将其应用于每个绘图:

library("ggplot2")

# creat variable to flag whether diamond size is below mean
diamonds$small <- diamonds$carat < mean(diamonds$carat)

# create table suitable for plotting, with facets by size
d2 <- data.frame(table(diamonds$cut, diamonds$color, diamonds$small))
names(d2) <- c("cut", "color", "size", "freq")

# create colour scale
c.scale <- scale_fill_gradient(low = "white", 
                               high = "steelblue",
                               limits=c(min(d2$freq),
                                        max(d2$freq)))

# apply the same scale to different plots
p1 <- ggplot(d2[which(d2$size == TRUE),], aes(cut, color)) + 
    geom_tile(aes(fill = freq), colour="white") 

p1 + c.scale

p2 <- ggplot(d2[which(d2$size == FALSE),], aes(cut, color)) + 
    geom_tile(aes(fill = freq), colour="white") 

p2 + c.scale

结果:两个地块

情节p1

plot p1

情节p2

plot p2