用networkx绘制文件中的人物关系图
时间: 2023-05-13 11:07:35 浏览: 103
可以使用networkx库中的Graph对象来绘制人物关系图。首先,需要读取文件中的人物关系数据,然后创建一个空的Graph对象,将人物作为节点添加到图中,将人物之间的关系作为边添加到图中,最后使用networkx提供的绘图函数将图绘制出来。以下是一个简单的示例代码:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 读取人物关系数据
with open('characters.txt', 'r') as f:
data = f.readlines()
# 创建空的Graph对象
G = nx.Graph()
# 添加节点和边
for line in data:
characters = line.strip().split(',')
for i in range(len(characters)):
if not G.has_node(characters[i]):
G.add_node(characters[i])
for j in range(i+1, len(characters)):
if not G.has_node(characters[j]):
G.add_node(characters[j])
if not G.has_edge(characters[i], characters[j]):
G.add_edge(characters[i], characters[j])
# 绘制图形
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, font_size=10, node_size=500, node_color='lightblue', edge_color='gray')
plt.show()
```
其中,`characters.txt`文件中包含了人物关系数据,每行表示一组人物之间的关系,格式为`人物1,人物2,人物3,...`。在上面的代码中,我们使用了`nx.Graph()`创建了一个空的Graph对象,然后使用`G.add_node()`和`G.add_edge()`方法添加了节点和边。最后,使用`nx.draw()`函数将图形绘制出来。
阅读全文