r - 匹配不同地 block 的填充梯度

标签 r ggplot2

假设我有这些数据:

d1 <- data.frame(x = letters[1:3], y=LETTERS[24:26], num = 1:3)
d2 <- data.frame(x = letters[1:3], y=LETTERS[24:26], num = c(1,2,30))

library(gridExtra)
library(ggplot2) 

ggd1 <- ggplot(d1, aes(x=x,y=y)) + 
          geom_tile(aes(fill=num)) + 
          scale_fill_gradient(low = "green", high = "blue")
ggd2 <- ggplot(d2, aes(x=x,y=y)) + 
          geom_tile(aes(fill=num)) + 
          scale_fill_gradient(low = "green", high = "blue")

grid.arrange(ggd1,ggd2)

enter image description here

我的问题是如何标准化填充渐变,这样即使 d1 和 d2 中的数据范围不同,X-aY-b 的颜色也应该匹配除了 Z-c 之外,这两个图应该相差一个数量级。即我想为两个地 block 保持相同的比例。

最佳答案

为每个图添加限制:

ggd1 <- ggplot(d1, aes(x=x,y=y)) + 
  geom_tile(aes(fill=num)) + 
  scale_fill_gradient(low = "green", high = "blue", limits=c(1, 30))
ggd2 <- ggplot(d2, aes(x=x,y=y)) + 
  geom_tile(aes(fill=num)) + 
  scale_fill_gradient(low = "green", high = "blue", limits=c(1, 30))
grid.arrange(ggd1,ggd2)

enter image description here

关于r - 匹配不同地 block 的填充梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22015612/

相关文章:

r - 根据 colname 列表排序

r - geom_path 在 gganimate 中淡出

r - 无法从R中的randomForest生成部分图

RMarkdown : Multiple ggplots in same chunk using loop

r - 仅在指定因素之间连接 geom_line

R ggplot 热图使用 geom_tile() : how to sort by year and show all years in y-axis?

r - 带有 ggplot2 的堆叠蝴蝶/ Tornado 图,以零为中心,用于可视化前后李克特问卷

R:将数据框列名称与数字连接

r - 将依赖项正确添加到 r 包中,以便它们自动安装

r - grid_plot + tikzDevice + 带有 latex 标记的共享图例