【问题标题】:How to Create a Directed Graph from Large Adjacency Matrix in Python?如何在 Python 中从大型邻接矩阵创建有向图?
【发布时间】:2017-09-22 22:17:46
【问题描述】:

我有一个邻接矩阵,我想清楚地生成一个图形视图(有向图),使用 Python 显示所有节点和边——I found a similar question that was solved in Matlab.

我能够使用PandasNetworkx 找到solution,但有一个我无法解决的限制。

请看下面我用来在Jupyter Notebook中生成图表的代码:

%matplotlib inline

import pandas as pd
import networkx as nx
import matplotlib 
import matplotlib.pyplot as plt

mx = pd.read_csv('/Users/student/Desktop/matrix.csv', sep='\t')
G  = nx.DiGraph(mx.values)
nx.draw_networks(G)

这是输出图:

问题:图太小了,因为 x 轴和 y 轴都限制在 1.0,所以我无法清楚地看到所有节点。

我在编写扩展此 matplotlib 图中 axes 范围的脚本时遇到困难?我还想提一下DiGraph()ax 参数,它采用Matplotlib Axes object

能帮我解决这个问题吗?

【问题讨论】:

  • 这不是轴的范围。你可以放大它们,情节看起来仍然基本相同。你会想要尝试使用 networkx 提供的不同布局。即便如此,它也可能非常困难。但是,鉴于您的圈子中间没有边缘,我认为成功的可能性是合理的。

标签: python python-3.x pandas matplotlib networkx


【解决方案1】:

开启

nx.draw_networks(G)

没有参数。在 networkx 文档页面中,有许多不同的方法来绘制图形,使用不同的方法来显示节点和弧线。

网络可能难以可视化,可能需要尝试不同的显示功能才能找到适用于任何给定数据集的功能。

【讨论】:

  • Netowkx documentation 声明.draw_networks(G, ) 有参数ax,它接受Matplotlib Axes object,但我不知道如何在我的代码中使用它
  • 调整坐标轴无助于解决您遇到的问题。您需要使用不同的布局。查看 networkx 针对不同布局的选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多