嘿,伙计们!在本教程中,我们将了解如何从Pandas数据框中建立我们自己的加权图。
任何Python程序的第一项任务是将必要的模块/库导入代码中:
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
接下来的任务是创建一个数据框架,在后面的章节中需要为其绘制图表。在pandas和numpy模块的帮助下,也可以得到同样的数据。
首先,我们创建一个随机种子,这将有助于在一个特定的范围内生成一些随机的整数,这些整数将在后面的部分作为边缘的权重。接下来,使用DataFrame 函数创建数据框,并将图形的数据传递给该函数。
r = np.random.RandomState(seed=5)
weights = r.random_integers(1, 5, size=(5,))
df = pd.DataFrame({'from':['A','B','C','D','E'],'to':['D','E','A','D','C'],'weight':weights})
df.head()

数据框架2 图形数据
接下来,我们将尝试通过分别使用draw_networkx_nodes,draw_networkx_edges 和draw_networkx_labels 函数绘制节点、边和标签来实现加权图的可视化。
节点的可视化
fig, ax = plt.subplots()
pos = nx.spring_layout(G)
plt.title("Plotting Nodes")
nx.draw_networkx_nodes(G, pos, ax = ax)

数据框架2仅有节点的图形
边的可视化
fig, ax = plt.subplots()
pos = nx.spring_layout(G)
plt.title("Plotting Edges")
nx.draw_networkx_edges(G, pos, width=durations, ax=ax)

Dataframe 2 图形中只有边
完整图形的可视化
fig, ax = plt.subplots()
pos = nx.spring_layout(G)
plt.title("Plotting Complete Graph")
nx.draw_networkx_nodes(G, pos, ax = ax)
nx.draw_networkx_edges(G, pos, width=durations, ax=ax)
_ = nx.draw_networkx_labels(G, pos, labels, ax=ax)

Dataframe 2 Graph 完整图形
总结
恭喜你!你刚刚学会了如何使用NetworkX库中的pandas数据框架来建立一个图。你刚刚学会了如何使用NetworkX库中的pandas数据框架来建立一个图形。希望你喜欢它!😇
谢谢您抽出时间!希望你能学到新的东西!!😄