关系图法,是指用连线图来表示事物相互关系的一种方法。最常见的关系图是数据库里的 E-R 图,表示实体、关系、属性三者之间的关系。在文本可视化里面,关系图也经常被用来表示有相互关系、原因与结果和目的与手段等复杂关系,下面我们来看看如何用 Python 实现关系图制作。
import pandas as pd
import matplotlib.pyplot as plt
import networkx as nx
# NetworkX 绘制关系图的数据组织结构,节点和边都是 list 格式,边的 list 里面是成对的节点
classes = ['英语课', '语文课', '数学课', '电脑课']
classrooms = ['博雅楼201', '博雅楼203', '博雅楼401', '博雅楼206']
nodes = list(set(classes + classrooms))
weights = [(classes[index], classrooms[index]) for index in range(len(classes))]
weights = list(set(weights))
# 设置matplotlib正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用黑体显示中文
plt.rcParams['axes.unicode_minus'] = False
# 有向图
DG = nx.DiGraph()
# 一次性添加多节点,输入的格式为列表
DG.add_nodes_from(nodes)
# 添加边,数据格式为列表
DG.add_edges_from(weights)
# 作图,设置节点名显示,节点大小,节点颜色
nx.draw(DG, with_labels=True, node_size=500)
plt.show()
原文:
https://soyoger.blog.csdn.net/article/details/108729410