从Python中的Pandas数据集绘制树图

时间:2018-04-25 17:11:37

标签: python pandas graph tree

我正在尝试从Pandas数据框中绘制一个树,但我不知道哪个是必须使用的正确数据结构,我该如何解决它。

数据集有4列:源,目标,应用程序和时间标记。

例如,数据集中的行可以是:

192.168.1.1 | 192.168.1.200 | ping | 10:00AM 

我想绘制一个树形图,为每个源生成一个节点,并显示每个源与已与之通信的目的地的邻接关系,以及每个目的地与该目的地已使用的所有应用程序的邻接关系使用源并最终显示每个(源,目标,应用程序)叶的邻接,以及在此目标和此源之间使用此应用程序的会话的所有时间标记。

您能否告诉我如何为此找到Python解决方案?

非常感谢!

1 个答案:

答案 0 :(得分:1)

你应该看看NetworkX

“NetworkX是一个Python包,用于创建,操作和研究复杂网络的结构,动态和功能。”

您可以提供数据集以填充图表,然后绘制图表。

例如:

import networkx as nx
import matplotlib.pyplot as plt

G=nx.Graph()
G.add_node('192.168.1.1')
G.add_node('192.168.1.100')
G.add_node('192.168.1.200')
G.add_edge('192.168.1.1', '192.168.1.100', object='10')
G.add_edge('192.168.1.1', '192.168.1.200', object='11')

nx.draw_networkx(G, pos = nx.shell_layout(G))
nx.draw_networkx_edge_labels(G, pos = nx.shell_layout(G))
plt.show()

会给你: enter image description here