我希望渲染具有不同细胞边界长度的2个网格,以说明如何处理细胞重叠的数量(聚合数据)的差异。
考虑以下ggplot2图:
使用以下代码制作:
library("ggplot2")
library("gtools")
big_cell_size = 1
small_cell_size = 0.3
width = 4
make_cell_data <- function(cell_size) {
n_cells = width / cell_size
vals = seq(from = cell_size / 2, to = width, by = cell_size)
perms <- permutations(length(vals),2, v=vals)
x_vals <- append(perms[,1], vals)
y_vals <- append(perms[,2], vals)
data.frame(x = x_vals, y = y_vals)
}
p <- ggplot(data = make_cell_data(big_cell_size), aes(x, y))
p <- p + labs(x="", y="")
p <- p + geom_tile(data = make_cell_data(big_cell_size), alpha=0, color="black", width=1, height=1)
p <- p + geom_tile(data = make_cell_data(small_cell_size), alpha=0, color="darkorange", width=0.3, height=0.3, linetype="35")
p <- p + theme(aspect.ratio=1)
p
我正在使用geom_tile,因为在使用geom_raster时,似乎没有办法让细胞透明。
我的问题:
答案 0 :(得分:0)
你有很多问题包含在一起,所以最好在不同的问题上分解它们。就想要编写不同的数字组而言,gtools
中有两种方法可以达到你想要的效果。
gtools::combinations(3,2,letters[1:3],repeats=TRUE)
产量
[,1] [,2]
[1,] "a" "a"
[2,] "a" "b"
[3,] "a" "c"
[4,] "b" "b"
[5,] "b" "c"
[6,] "c" "c"
gtools::permutations(3,2,letters[1:3],repeats=TRUE)
产量
[,1] [,2]
[1,] "a" "a"
[2,] "a" "b"
[3,] "a" "c"
[4,] "b" "a"
[5,] "b" "b"
[6,] "b" "c"
[7,] "c" "a"
[8,] "c" "b"
[9,] "c" "c"