Как построить бинарную матрицу только 1(один) элемент в R
У меня есть файл с разреженной матрицей.csv, и я сохраняю матрицу как:
v1 v2 v3 v4 v5 v6 ... vn
1 0 1 0 1 0 0
2 0 0 0 1 0 0
3 0 0 0 0 1 0
4 1 0 0 0 0 1
5 1 0 1 0 1 0
...
m
Я хочу сделать сюжет x value = v1~vn , y value = 1~m
и маркировка только ненулевых элементов (только 1)
в Matlab я использую spy(), но я не знаю, как это сделать в R.
2 ответа
Вы можете использовать SparseM
пакет:
m <- matrix(as.numeric(runif(100) > 0.9), ncol = 10) # create random sparse matrix
library(SparseM)
image(as.matrix.csr(m)) # plot it :)
Вот решение с использованием ggplot2::ggplot
,
# Sample data
set.seed(2017);
df <- matrix(sample(c(0, 1), 100, replace = TRUE), nrow = 10);
df;
# Convert wide to long
library(reshape2);
df.long <- melt(df);
# Var1 = row
# Var2 = column
library(ggplot2);
gg <- ggplot(subset(df.long, value == 1), aes(x = Var2, y = Var1));
gg <- gg + geom_point(size = 2, fill = "blue", shape = 21);
gg <- gg + theme_bw();
gg <- gg + labs(y = "Row", x = "Column");
gg <- gg + scale_y_reverse();