3

我有一个稀疏矩阵 .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 中执行此操作。

4

2 回答 2

2

这是一个使用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();

在此处输入图像描述

于 2017-11-02T07:37:42.867 回答
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 :)

在此处输入图像描述

于 2017-11-02T07:38:17.430 回答