我正在使用 geom_raster 和/或 geom_tile 创建多个图块/热图。数据排列为col(x)、row(y),z值是填充梯度。该模式中有很大的差距——一些是由于缺少数据,但主要是由于设计——数据表示二维圆形表面上一组测量值的行/列阵列。 (注意:这是一个子集。完整的数据集由 27 个图组成。)
我的问题是,我如何插值以填充这些地图中的这些间隙,使它们显示为连续的表面?
我的剧情代码:
library(ggplot2)
ggplot(ex, aes(col, row, fill = z)) +
geom_raster() +
scale_fill_gradient2(low = "blue", high = "red",
mid = "white", midpoint = 0, limits=c(-0.015, 0.015),
labels = scales::percent) +
scale_y_continuous(trans = "reverse") +
facet_wrap(.~as.factor(order)) +
theme_dark()
数据集:
ex <- structure(list(order = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L), row = c(1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L,
4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L,
7L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 11L,
11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 13L, 13L, 13L, 14L,
14L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L,
5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L,
8L, 8L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L,
11L, 11L, 12L, 12L, 12L, 12L, 13L, 13L, 13L, 14L, 14L, 1L, 1L,
2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L,
6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 9L, 9L,
9L, 9L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 12L,
12L, 12L, 12L, 13L, 13L, 13L, 14L, 14L, 1L, 1L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L,
7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 10L,
10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L,
13L, 13L, 13L, 14L, 14L), col = c(6L, 9L, 5L, 8L, 11L, 4L, 7L,
9L, 10L, 3L, 5L, 6L, 9L, 12L, 2L, 5L, 8L, 11L, 4L, 7L, 10L, 13L,
3L, 6L, 9L, 11L, 12L, 2L, 4L, 5L, 8L, 11L, 4L, 7L, 10L, 13L,
3L, 6L, 9L, 12L, 2L, 5L, 8L, 10L, 11L, 13L, 4L, 6L, 7L, 10L,
6L, 9L, 11L, 5L, 8L, 6L, 9L, 5L, 8L, 11L, 4L, 7L, 9L, 10L, 3L,
5L, 6L, 9L, 12L, 2L, 5L, 8L, 11L, 4L, 7L, 10L, 13L, 3L, 6L, 9L,
11L, 12L, 2L, 4L, 5L, 8L, 11L, 4L, 7L, 10L, 13L, 3L, 6L, 9L,
12L, 2L, 5L, 8L, 10L, 11L, 13L, 4L, 6L, 7L, 10L, 6L, 9L, 11L,
5L, 8L, 6L, 9L, 5L, 8L, 11L, 4L, 7L, 9L, 10L, 3L, 5L, 6L, 9L,
12L, 2L, 5L, 8L, 11L, 4L, 7L, 10L, 13L, 3L, 6L, 9L, 11L, 12L,
2L, 4L, 5L, 8L, 11L, 4L, 7L, 10L, 13L, 3L, 6L, 9L, 12L, 2L, 5L,
8L, 10L, 11L, 13L, 4L, 6L, 7L, 10L, 6L, 9L, 11L, 5L, 8L, 6L,
9L, 5L, 8L, 11L, 4L, 7L, 9L, 10L, 3L, 5L, 6L, 9L, 12L, 2L, 5L,
8L, 11L, 4L, 7L, 10L, 13L, 3L, 6L, 9L, 11L, 12L, 2L, 4L, 5L,
8L, 11L, 4L, 7L, 10L, 13L, 3L, 6L, 9L, 12L, 2L, 5L, 8L, 10L,
11L, 13L, 4L, 6L, 7L, 10L, 6L, 9L, 11L, 5L, 8L), z = c(-0.004858322,
-0.003678845, -0.001656884, -0.001825381, 0.00070207, 0.00120756,
0.000533573, 0.001039063, -0.002499368, -0.001319891, 0.00070207,
0.003566514, 0.007947429, -0.000645904, 2.80828e-05, 0.000533573,
0.004408998, 0.003735011, 0.01098037, 0.002050044, -0.001151394,
0.00221854, -0.001825381, -0.000645904, 0.005251481, 0.011317364,
-0.001488388, 0.00120756, 0.004072004, -0.000645904, -0.005026819,
0.008789913, 0.006767952, -0.003510349, 0.001881547, 0.00070207,
-0.000982898, -0.001656884, 0.001376057, -0.001656884, -0.002330871,
0.001376057, -0.003341852, 0.002387037, NA, -0.00704878, 0.00171305,
-0.001319891, -0.006374793, -0.004184335, 0.004914488, -0.003004858,
0.001376057, -0.018001067, -0.012103682, -0.003928051, -0.005505112,
-0.005347406, -0.004243463, -0.008659235, -0.001404753, 0.002537901,
0.002537901, NA, -0.004085757, -0.002666402, -0.003454933, 0.001118545,
-0.006293643, -0.002824108, 0.00458808, 0.003011019, 0.002064782,
0.002064782, -0.000143104, 0.000330015, -0.004243463, 0.002222488,
0.004272668, 0.003011019, 0.004430374, 0.000330015, 0.000172309,
0.004114962, 0.005534317, 0.006322848, 0.004114962, 0.002380194,
0.003957256, 0.001118545, -0.000616222, 0.003326431, 0.005376611,
-0.002824108, 0.005376611, 1.46024e-05, 0.011054032, 0.001591664,
-0.001089341, -0.000616222, -0.006609055, 0.002380194, 0.002222488,
0.001907076, 0.000330015, 1.46024e-05, -0.004243463, -0.003612639,
-0.014021244, -0.007397586, -0.007748634, -0.005559269, -0.004308204,
-0.006184802, -0.010719915, NA, -0.000242241, 0.00319819, NA,
-0.002587989, -0.003369905, -0.003682671, NA, -0.006341185, -0.001493306,
0.003041806, NA, -0.00071139, -0.001806073, 0.001165208, 0.003667339,
-0.003369905, 0.003823722, 0.00272904, 0.002885423, 0.001790741,
-0.003369905, -0.001806073, -0.002744372, -0.001024157, 0.003667339,
0.005387554, 0.003510956, 0.002572657, -0.00118054, -0.004933736,
-0.001336923, 0.011017349, 0.000383292, 0.005231171, 0.000852442,
0.001165208, 0.003041806, 0.001947124, -0.002431605, -0.006653952,
0.00319819, 0.008046069, 0.008358835, 0.00663862, 0.003823722,
-0.000398624, -0.002900755, -0.002275222, -0.001962456, -0.002808585,
-0.008026171, 3.73711e-05, 0.000353588, -0.008974823, 0.004464414,
0.003831979, 0.001144132, -0.000911281, 0.003990088, 0.003831979,
0.003990088, -0.000278846, -0.01182078, 0.007626588, 0.00857524,
0.006836044, -0.004863998, 0.007152262, 0.004148197, 0.001460349,
-0.017512692, 0.008733348, 0.008259022, 0.00493874, -0.002492368,
-0.01292754, 0.006677936, 0.006994153, 0.004464414, 0.005096849,
-0.003915346, 0.011737413, 0.005571175, 0.001460349, -0.022888387,
0.007942805, 0.009365783, -0.001701824, -0.008974823, 0.009207674,
0.005571175, 0.003357653, -0.00581265, -0.007077519, -0.018619453,
0.006836044, 0.002725219, 0.003357653, -0.004705889, 0.000353588,
-0.002808585, -0.007709954, -0.007235628, -0.008026171)), class = "data.frame", row.names = c(NA,
-220L))