前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >超好看的弦图,Python一行代码就能做

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

作者头像
刘早起
发布2020-04-15 17:39:38
1.4K0
发布2020-04-15 17:39:38
举报
文章被收录于专栏:早起Python早起Python

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

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

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

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

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

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

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

代码语言:javascript
复制
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的方阵

好了,我们需要的数据格式就是这样,现在一行代码即可生成好看的弦图

代码语言:javascript
复制
Chord(matrix, names, colors="d3.schemeSet2").to_html()

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 早起Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档