暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

超好看的弦图,Python一行代码就能做

Techdemic 2020-04-11
978


点击上方“早起Python”,关注并星标公众号

和我一起玩Python

大家好,说起可视化图表,那么弦图(Chord Diagram)一定是颜值担当了,比如在今天这个特殊的日子我们通过使用百度迁徙数据来可视化展示武汉及其周边城市的迁徙数据👇

看上去是不是很酷炫,并且还支持交互,接下来我们就讲解如何使用Python制作这样一张弦图~

首先我们先简单介绍一下弦图弦图主要用于展示多个对象之间的关系,连接圆上任意两点的线段叫做,弦(两点之间的连线)就代表着两者之间的关联关系。弦图虽然看起来有点眼花缭乱,但是它却非常适合用户分析复杂数据的关联关系。

在Python中制作弦图的方法有很多,比如Plotly、Bokeh都支持绘制弦图,但是我们要讲的则是一个专门制作弦图的库chord(chord就是弦的意思啦),因为这个库支持调整一些参数来让图变得更加好看,安装也很简单pip install chord
就可以。

和之前的技术解析文章一样,首先我们需要确认一下自己的数据长啥样,我们直接使用Python取下百度迁徙数据下的武汉迁徙详情页相关数据

提取迁入武汉来源地并依次获得这五个来源地的迁入城市前五名即可,因此我们的数据长这样

接下来我们使用下面的代码计算一下每两个城市的联系矩阵

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)

看下这个矩阵,因为一共涉及14个城市所以是一个14* 14的方阵

好了,我们需要的数据格式就是这样,现在一行代码即可生成好看的弦图
Chord(matrix, names, colors="d3.schemeSet2").to_html()

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


以上就是如何使用Python制作酷炫的弦图教程,你学会了吗?简单来说就是将数据整理成它需要的格式传进去即可,更多的样式还需要你自己探索,快去试试吧。


往期内容(👇猛戳可查看


热门文章:
情人节网站岗位对比分析爬取网易云音乐
微博热搜分析自动追踪快递Python画樱花
Python斗地主Matplotlib神器全球疫情动态图
数据分析:
统计检验数据分析报告数据分析技巧
数据可视化Pandas学习缺失值处理
Python库整理数据降维疫情数据汇总


记得点个在看支持下~👇
文章转载自Techdemic,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论