Python一行代码即可绘制和弦图

1、和弦图简介

和弦图(chord Diagram),是一种显示矩阵中数据间相互关系的可视化方法,节点数据沿圆周径向排列,节点之间使用带权重(有宽度)的弧线链接。

1.1、和弦图构成

在这里插入图片描述

图表类型和弦图
适合的数据节点数据集(可选),边数据集
功能观察节点关系
数据与图形的映射权重映射到节点和边的宽度
适合的数据条数节点数据两组以上

1.2、和弦图应用场景

和弦图用于探索实体组之间的关系

  1. 例子1:展示层次结构中的依赖关系

例如在软件类层次结构中的类存在复杂的依赖关系,根据源和目标包进行分组,然后根据依赖的程度使用带宽度的边连接具有依赖关系的节点,下图每个节点表示一个独立的包,每条边展示了包与包之间的依赖关系,每个节点上边的数量展示了当前包依赖的目标包的数量,边的初始宽度展示了当前包的类依赖目标包的类的数量,边的结束宽度展示了目标包的类依赖当前包的类的数量,也就是说,当一条边的结束宽度不为0时,表示包之间有循环依赖,在图表中表现为节点上连接了颜色与节点不同的边,例如图中左下角的 vis.data 与 vis.event。
在这里插入图片描述

  1. 例2:展示同级实体之间的流通关系

下图展示了某个时段用户使用uber软件在美国旧金山各个城市之间乘车交通的情况,图中的节点表示城市,节点大小表示了交通流量的多少,从图中可以看出,交通行为主要发生在SoMa、Downtown、Financial District、Mission、Marina和Western Addition六个城市。边连接了有交通行为的两个城市,节点上边的条数表示与当前城市有交通行为的城市的数量,边的初始宽度表示从当前城市到目标城市的流通量,边的结束宽度表示从目标城市到当前城市的流通量,从图中可以看出,从 SoMa到Financial District的流量最大

在这里插入图片描述

2、和弦图Python库

  • Plotly
  • Bokeh
  • chord——一个专门制作弦图的库

3、chord的安装及使用

  1. 安装:cmd窗口输入pip install chord进行安装
  2. 准备数据:
    在这里插入图片描述
  3. 计算联系矩阵
import numpy as np
import pandas as pd
import itertools
from chord import Chord
data = list(itertools.chain.from_iterable((i, i[::-1]) for i in data.values))
matrix = pd.pivot_table(
    pd.DataFrame(data), index=0, columns=1, aggfunc="size", fill_value=0
).values.tolist()
pd.DataFrame(matrix)

在这里插入图片描述
4. 一行代码生成和弦图:

Chord(matrix, names, colors="d3.schemeSet2").to_html()

把城市名和矩阵传进去,执行完之后你的工作目录下就会生成一个html文件,打开就是本文刚开始的弦图啦!当然我们还可以修改color参数来调整图的颜色与样式

在这里插入图片描述
参考:https://mp.weixin.qq.com/s/6XqXd6JziTy9WULPAoU-Yg;
http://antv-2018.alipay.com/zh-cn/vis/chart/chord.html

  • 5
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值