I have a data set with x, y, and z (resp
) values along with two columns for facetting in order to create a grid of tile plots.
The output of dput()
is at the end of the post.
library(ggplot2)
My actual data set has six unique interactions between variables, however I've limited it to four for simplicity. I can create a tile plot with each unique combination, but not the whole set. The output of dput()
is at the end of the post. I thought it might have to do with ggplot
needing a common y axis scale, but that's not the issue.
library(ggplot2)
p <- ggplot(data_sub, aes(x = x, y = y)) + geom_tile(aes(fill = resp))
p <- p + facet_wrap(var2 ~ var1, scales = "free", ncol = 2)
The output:
Plotted on their own, there is no such white space:
x1x2 <- data_sub[data_sub$var1 == "x1" & data_sub$var2 == "x3", ]
ggplot(x1x2, aes(x = x, y = y)) + geom_tile(aes(fill = resp))
I believe the issue is defining some sort of dynamic height
and width
aesthetic in the geom_tile()
call, but I'm not sure how to do this. It seems that a single tile plot will use something like diff((unique(x))
to come up with the appropriate height, but I'm not sure how to do that for each facet level -- is the only way to create such columns in my data frame?
The data:
dput(data_sub)
structure(list(x = c(-3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, -3, -2.33333333333333, -1.66666666666667,
-1, -0.333333333333333, 0.333333333333333, 1, 1.66666666666667,
2.33333333333333, 3, 0, 0.111111111111111, 0.222222222222222,
0.333333333333333, 0.444444444444444, 0.555555555555556, 0.666666666666667,
0.777777777777778, 0.888888888888889, 1, 0, 0.111111111111111,
0.222222222222222, 0.333333333333333, 0.444444444444444, 0.555555555555556,
0.666666666666667, 0.777777777777778, 0.888888888888889, 1, 0,
0.111111111111111, 0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.777777777777778, 0.888888888888889,
1, 0, 0.111111111111111, 0.222222222222222, 0.333333333333333,
0.444444444444444, 0.555555555555556, 0.666666666666667, 0.777777777777778,
0.888888888888889, 1, 0, 0.111111111111111, 0.222222222222222,
0.333333333333333, 0.444444444444444, 0.555555555555556, 0.666666666666667,
0.777777777777778, 0.888888888888889, 1, 0, 0.111111111111111,
0.222222222222222, 0.333333333333333, 0.444444444444444, 0.555555555555556,
0.666666666666667, 0.777777777777778, 0.888888888888889, 1, 0,
0.111111111111111, 0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.777777777777778, 0.888888888888889,
1, 0, 0.111111111111111, 0.222222222222222, 0.333333333333333,
0.444444444444444, 0.555555555555556, 0.666666666666667, 0.777777777777778,
0.888888888888889, 1, 0, 0.111111111111111, 0.222222222222222,
0.333333333333333, 0.444444444444444, 0.555555555555556, 0.666666666666667,
0.777777777777778, 0.888888888888889, 1, 0, 0.111111111111111,
0.222222222222222, 0.333333333333333, 0.444444444444444, 0.555555555555556,
0.666666666666667, 0.777777777777778, 0.888888888888889, 1, 0,
0.111111111111111, 0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.777777777777778, 0.888888888888889,
1, 0, 0.111111111111111, 0.222222222222222, 0.333333333333333,
0.444444444444444, 0.555555555555556, 0.666666666666667, 0.777777777777778,
0.888888888888889, 1, 0, 0.111111111111111, 0.222222222222222,
0.333333333333333, 0.444444444444444, 0.555555555555556, 0.666666666666667,
0.777777777777778, 0.888888888888889, 1, 0, 0.111111111111111,
0.222222222222222, 0.333333333333333, 0.444444444444444, 0.555555555555556,
0.666666666666667, 0.777777777777778, 0.888888888888889, 1, 0,
0.111111111111111, 0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.777777777777778, 0.888888888888889,
1, 0, 0.111111111111111, 0.222222222222222, 0.333333333333333,
0.444444444444444, 0.555555555555556, 0.666666666666667, 0.777777777777778,
0.888888888888889, 1, 0, 0.111111111111111, 0.222222222222222,
0.333333333333333, 0.444444444444444, 0.555555555555556, 0.666666666666667,
0.777777777777778, 0.888888888888889, 1, 0, 0.111111111111111,
0.222222222222222, 0.333333333333333, 0.444444444444444, 0.555555555555556,
0.666666666666667, 0.777777777777778, 0.888888888888889, 1, 0,
0.111111111111111, 0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.777777777777778, 0.888888888888889,
1, 0, 0.111111111111111, 0.222222222222222, 0.333333333333333,
0.444444444444444, 0.555555555555556, 0.666666666666667, 0.777777777777778,
0.888888888888889, 1), y = c(5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6.66666666666667,
6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667,
6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667,
6.66666666666667, 8.33333333333333, 8.33333333333333, 8.33333333333333,
8.33333333333333, 8.33333333333333, 8.33333333333333, 8.33333333333333,
8.33333333333333, 8.33333333333333, 8.33333333333333, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 11.6666666666667, 11.6666666666667,
11.6666666666667, 11.6666666666667, 11.6666666666667, 11.6666666666667,
11.6666666666667, 11.6666666666667, 11.6666666666667, 11.6666666666667,
13.3333333333333, 13.3333333333333, 13.3333333333333, 13.3333333333333,
13.3333333333333, 13.3333333333333, 13.3333333333333, 13.3333333333333,
13.3333333333333, 13.3333333333333, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 16.6666666666667, 16.6666666666667, 16.6666666666667,
16.6666666666667, 16.6666666666667, 16.6666666666667, 16.6666666666667,
16.6666666666667, 16.6666666666667, 16.6666666666667, 18.3333333333333,
18.3333333333333, 18.3333333333333, 18.3333333333333, 18.3333333333333,
18.3333333333333, 18.3333333333333, 18.3333333333333, 18.3333333333333,
18.3333333333333, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0.777777777777778, 0.777777777777778,
0.777777777777778, 0.777777777777778, 0.777777777777778, 0.777777777777778,
0.777777777777778, 0.777777777777778, 0.777777777777778, 0.777777777777778,
1.55555555555556, 1.55555555555556, 1.55555555555556, 1.55555555555556,
1.55555555555556, 1.55555555555556, 1.55555555555556, 1.55555555555556,
1.55555555555556, 1.55555555555556, 2.33333333333333, 2.33333333333333,
2.33333333333333, 2.33333333333333, 2.33333333333333, 2.33333333333333,
2.33333333333333, 2.33333333333333, 2.33333333333333, 2.33333333333333,
3.11111111111111, 3.11111111111111, 3.11111111111111, 3.11111111111111,
3.11111111111111, 3.11111111111111, 3.11111111111111, 3.11111111111111,
3.11111111111111, 3.11111111111111, 3.88888888888889, 3.88888888888889,
3.88888888888889, 3.88888888888889, 3.88888888888889, 3.88888888888889,
3.88888888888889, 3.88888888888889, 3.88888888888889, 3.88888888888889,
4.66666666666667, 4.66666666666667, 4.66666666666667, 4.66666666666667,
4.66666666666667, 4.66666666666667, 4.66666666666667, 4.66666666666667,
4.66666666666667, 4.66666666666667, 5.44444444444444, 5.44444444444444,
5.44444444444444, 5.44444444444444, 5.44444444444444, 5.44444444444444,
5.44444444444444, 5.44444444444444, 5.44444444444444, 5.44444444444444,
6.22222222222222, 6.22222222222222, 6.22222222222222, 6.22222222222222,
6.22222222222222, 6.22222222222222, 6.22222222222222, 6.22222222222222,
6.22222222222222, 6.22222222222222, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6.66666666666667, 6.66666666666667,
6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667,
6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667,
8.33333333333333, 8.33333333333333, 8.33333333333333, 8.33333333333333,
8.33333333333333, 8.33333333333333, 8.33333333333333, 8.33333333333333,
8.33333333333333, 8.33333333333333, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 11.6666666666667, 11.6666666666667, 11.6666666666667,
11.6666666666667, 11.6666666666667, 11.6666666666667, 11.6666666666667,
11.6666666666667, 11.6666666666667, 11.6666666666667, 13.3333333333333,
13.3333333333333, 13.3333333333333, 13.3333333333333, 13.3333333333333,
13.3333333333333, 13.3333333333333, 13.3333333333333, 13.3333333333333,
13.3333333333333, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16.6666666666667,
16.6666666666667, 16.6666666666667, 16.6666666666667, 16.6666666666667,
16.6666666666667, 16.6666666666667, 16.6666666666667, 16.6666666666667,
16.6666666666667, 18.3333333333333, 18.3333333333333, 18.3333333333333,
18.3333333333333, 18.3333333333333, 18.3333333333333, 18.3333333333333,
18.3333333333333, 18.3333333333333, 18.3333333333333, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.777777777777778, 0.777777777777778, 0.777777777777778, 0.777777777777778,
0.777777777777778, 0.777777777777778, 0.777777777777778, 0.777777777777778,
0.777777777777778, 0.777777777777778, 1.55555555555556, 1.55555555555556