大家好,說起可視化圖表,那么弦圖(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制作酷炫的弦圖教程,你學會了嗎?簡單來說就是將數據整理成它需要的格式傳進去即可,更多的樣式還需要你自己探索,快去試試吧。