Моей первой ставкой было взглянуть на метод image
из пакета Matrix. Примером может быть что-то вроде:
#####
# simulate a random matrix
n <- 1000000L # number of nodes
set.seed(1)
rng_i <- sample.int(n, size = 100L * n, replace = TRUE)
rng_j <- sample.int(n, size = 100L * n, replace = TRUE)
i <- c(1:n, rng_i, rng_j)
j <- c(1:n, rng_j, rng_i)
x <- runif(n * 100L)
x <- c(rep(1, n), x, x)
keep <- j <= i & c(rep(TRUE, n), tail(i, -n) != tail(j, -n))
j <- j[keep]
i <- i[keep]
x <- x[keep]
# use the image method from Matrix
library(Matrix)
mat <- sparseMatrix(i = i, j = j, x = x, symmetric = TRUE)
image(mat)
Это занимает некоторое время, но оказывается основанным на levelplot
из lattice
. На выходе получается большой пустой график.
Немного подумав, если у вас есть, скажем, изображение размером 102 x 102 мм (~ 4 x 4 дюйма) и матрица 1 м x 1 м, то на каждый элемент матрицы приходится ~ 0,0001 x 0,0001 мм, если не учитывать ось и т. д. , Не зная многого о человеческом восприятии или изображениях, я предполагаю, что вам потребуется очень большое количество пикселей на дюйм, чтобы построить их, и я не уверен, что это будет воспринимаемо, если нет более крупных кластеров соседних ненулевых записи.
С другой стороны, если вы измените n <- 10000L
, вы получите:
![введите здесь описание изображения](https://i.stack.imgur.com/4DDjb.png)
довольно быстро. Вышеизложенное также дает представление о том, насколько тяжело будет воспринимать коробки, которые на 1/100 x 1/100 меньше. Я предполагаю, что нужно искать количество соседних ненулевых узлов в большей окрестности, но я не знаю пакета, который это сделает.
person
Benjamin Christoffersen
schedule
12.11.2020