使用R可视化邻接矩阵中的不同聚类]

问题描述 投票:0回答:1

如何使用R可视化邻接矩阵中的不同簇?可以使用ggplot吗?下面是我的邻接矩阵的一个示例,称为Dissimiliarity_matrix。

 V1     V2      V3      V4     V5
0.00   0.00    0.36    0.36   0.69
0.00   0.00    0.36    0.36   0.69
0.36   0.36    0.00    0.00   0.33
0.36   0.36    0.00    0.00   0.33
0.69   0.69    0.33    0.33   0.00
r ggplot2 visualization adjacency-matrix
1个回答
0
投票

您可以从graph_from_adjacency_matrix包中尝试igraph

plot(igraph::graph_from_adjacency_matrix(floor(as.matrix(dissimilarity_matrix) * 3)))

enter image description here


附录

根据OP的评论,还有另一种方法可以帮助寻找聚类,即绘制矩阵。为此,最好首先将相异性矩阵转换为数据帧,每个像元每行包含一行,每行给出行名,列名和该像元的值:

vars <- colnames(dissimilarity_matrix)
df <- data.frame(expand.grid(list(vars, vars)), as.vector(dissimilarity_matrix))
names(df) <- c("Rows", "Columns", "Value")

然后将很容易使用geom_tile进行绘制。在这里,我首先将值转换为因子水平,以允许应用合适的填充色标。我还排除了所有值为零的单元格,以便更清晰地显示集群:

df$Value <- factor(df$Value, levels = rev(sort(unique(df$Value))))

ggplot(df[df$Value != 0, ], aes(x = Rows, y = Columns, fill = Value)) +
      geom_tile(colour = "black") +
      theme_bw() +
      scale_fill_brewer(palette = 1, direction = -1) +
      scale_x_discrete(drop = FALSE) +
      scale_y_discrete(drop = FALSE) +
      theme(
        axis.text.x = element_text(angle = 270, hjust = 0),
        aspect.ratio = 1)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.