开始使用免费开始使用

使用矩阵图进行可视化

现在是尝试您的第一个"进阶"图可视化方法的时候了:矩阵图。为此,nxviz 提供了 matrix() 函数。这个函数与 nxviz 顶层 API 的其他函数一样,会返回一个 matplotlib 的坐标轴对象,您可以用 plt.show() 将其显示出来。

nxviz 是一个用于以更合理方式可视化图的包。在底层,matrix 函数会调用 nx.to_numpy_array(G),返回图的矩阵形式。这里每个节点对应一列和一行,两个节点之间若存在一条边,则用值 1 表示。不过,这样做只会保留 weight 元数据;其他所有元数据都会丢失。您将通过一个 assert 语句来验证这一点。

相应地,nx.from_numpy_array(A) 允许您从一个 NumPy 数组快速创建图。默认的图类型是 Graph();如果您想创建 DiGraph(),需要通过 create_using 关键字参数指定,例如(nx.from_numpy_array(A, create_using=nx.DiGraph))。

最后说明一下,matplotlib.pyplotnetworkx 已分别以 pltnx 导入,图 T 也已预加载。为简化与加速,我们仅从网络中抽取了 100 条边进行子采样。

本练习是课程的一部分

Python 网络分析入门

查看课程

练习说明

  • nxviz 导入 matrix
  • 将图 T 绘制为矩阵图。具体步骤:
    • 使用 nv.matrix() 函数并传入 T 创建名为 m 的矩阵图。
    • 使用 plt.show() 显示图形。
  • 将图转换为矩阵格式,然后再从该矩阵将图转换回 NetworkX 形式的有向图。这部分已为您完成。
  • 检查每个节点的 category 元数据字段是否丢失。这部分也已为您完成,点击 "Submit Answer" 查看结果!

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import nxviz
____

# Create the matrix plot: m
m = ____

# Display the plot
____

# Convert T to a matrix format: A
A = nx.to_numpy_array(T)

# Convert A back to the NetworkX form as a directed graph: T_conv
T_conv = nx.from_numpy_array(A, create_using=nx.DiGraph())

# Check that the `category` metadata field is lost from each node
for n, d in T_conv.nodes(data=True):
    assert 'category' not in d.keys()
编辑并运行代码