我正在使用ggplot来创建热图样式图,并希望添加第二个图例,其中数据以不同的方式缩放。我想知道是否有一种简单的方法可以做到这一点。
我不相信这是其他“多重传说”问题的重复,例如Multiple legends for a ggplot in R至关重要的是,我想为同样的美学添加额外的传说 - 即一个美学映射,两个传说。
示例代码
# Create a dataframe with some dummy data
x <- c()
y <- c()
for(i in 1:100){
for(j in 1:100){
x <- c(x, i)
y <- c(y, j)
}
}
example_data <- data.frame(x, y)
example_data$z <- example_data$x*example_data$y
example_data$z_rescale <- example_data$z*0.5
现在我们已经有了一些数据,我希望将其作为热图,将“z”作为颜色渐变。
ggplot(example_data, aes(x = x, y = y, fill = z)) +
geom_tile() +
scale_fill_gradient(low = "blue", high = "red") +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0))
对重新缩放的z执行相同操作会给出相同的图,但使用重新缩放的图例:
ggplot(example_data, aes(x = x, y = y, fill = z_rescale)) +
geom_tile() +
scale_fill_gradient(low = "blue", high = "red") +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0))
我想要做的是有一个单独的情节显示两个不同的传说,看起来像这个模型:
现在,我想通过创建两个图来实现这一点,在其中一个图中找到代表图例的grob并巧妙地将其添加到第二个图中...但是,有一种更简单的方法吗?我可以俯瞰吗?
非常感谢!