【发布时间】:2019-02-24 12:50:41
【问题描述】:
我有如下数据:
data_ex <- data.frame(x = runif(1000, 0, 10),
y = runif(1000, 0, 10),
z = runif(1000, 0, 1))
所以基本上这些点(x, y) 在一个正方形(但也可能是一个矩形)内具有一些值z。我想将此平面划分为 100 个较小的正方形(矩形)并在其中平均 z 值。所以我做了以下事情:
data_ex <- data_ex %>%
mutate(x2 = cut(x, breaks = 0:10),
y2 = cut(y, breaks = 0:10)) %>%
group_by(x2, y2) %>%
mutate(z = mean(z)) %>%
ungroup()
现在我想绘制它并使用平均 z 值作为每个小正方形(矩形)的颜色。潜在地,我可以使用geom_tile 来执行此操作(如下所示),但它需要图块的中心作为输入。
data_ex %>%
ggplot() +
geom_rect(aes(xmin = 0, xmax = 10, ymin = 0, ymax = 10), fill = 'white') +
geom_tile(aes(x_center, y_center, fill = z))
我大概可以将它提取为x2 和y2 的中心,但看起来有点麻烦。因此,我想知道是否有更快的方法来执行适当的计算或以不同的方式制作所需的绘图。
【问题讨论】:
-
所以你想绘制热图?
-
基本上,是的。内调整了小矩形的数量和大小。