python用Joypy繪制嵴線圖實(shí)例
一、概念介紹
嵴線圖(ridgeline plot),用來展示同一維度的幾個(gè)數(shù)據(jù)的分布情況,每一層嵴線(峰巒)都是一個(gè)直方圖或者密度圖,層層堆疊形成了最終的嵴線圖。
· 嵴線圖一般用于多類別(>5) 的連續(xù)變量數(shù)值分布對(duì)比,也因此,如果某一個(gè)數(shù)據(jù)的取值區(qū)間過小或者分布平均時(shí),波動(dòng)不易察覺,且影響圖形呈現(xiàn)的視覺美觀。
圖形示例:

我們需要了解的是:嵴線圖的橫坐標(biāo)是數(shù)值分布區(qū)間,更像我們常使用的y軸;而縱坐標(biāo)是每一個(gè)數(shù)值序列的類標(biāo);嵴線的波峰代表在對(duì)應(yīng)值分布集中, 頻率高。
二、數(shù)據(jù)展示
在本案例中,我們希望通過嵴線圖展示隨機(jī)選擇的八座城市在過去一年的日最高溫最低溫分布情況。
數(shù)據(jù)來源于廣州11月份天氣|廣州11月份氣溫|廣州2021年11月份歷史天氣—全球天氣網(wǎng)
借助了爬蟲工具,我們簡便地收集了2020-12至2021-11的日度數(shù)據(jù),得到如下excel集合

每一個(gè)excel表格的數(shù)據(jù)呈現(xiàn)如下:

同一版數(shù)據(jù),對(duì)于氣候類型也繪制了馬賽克圖~
三、數(shù)據(jù)讀入
import pandas as pd
city8_fullname_py = ['beijing','chongqing','wuhan','shenzhen','nanjing','guangzhou','chengdu','shanghai']
city8_fullname = ['北京','重慶','武漢','深圳','南京','廣州','成都','上海']
weather_dic = {}
for i in range(len(city8_fullname)):
df = pd.DataFrame(pd.read_excel('./2021年城市氣溫?cái)?shù)據(jù)/2021年氣溫?cái)?shù)據(jù)'+city8_fullname_py[i]+'.xls'))
weather_dic[city8_fullname[i]] = df[['日期','最高溫','最低溫','氣候類型']]
weather_dic[city8_fullname[i]]['城市'] = pd.Series([city8_fullname[i]]*df.shape[0])
weather = weather_dic[city8_fullname[0]]
for i in range(1,8):
weather = pd.concat([weather,weather_dic[city8_fullname[i]]],ignore_index="true")得到的數(shù)據(jù)存放在weather中,結(jié)構(gòu)如下:

四、圖像繪制
這里我們需要joypy包
import joypy
import matplotlib.pyplot as plt
plt.figure(dpi= 90)
fig, axes = joypy.joyplot(weather, column=['最高溫', '最低溫'], by="城市", figsize=(13,9),
fill=True, legend=True,alpha=.8,
xlabelsize=18,ylabelsize=18,color=['tomato','dodgerblue']
)
plt.title('八大城市過去一年氣溫分布', fontsize=25,verticalalignment='bottom' )
plt.savefig(r'./繪圖結(jié)果/天氣-過去一年氣溫分布-嵴線圖.png')by----在圖形中即我們的縱坐標(biāo),數(shù)據(jù)類別,需要指定。
fill----是否需要顏色填充
alpha----在面積圖和嵴線圖這類會(huì)存在圖像覆蓋的可視化圖像中,我們是建議調(diào)整透明度的,便于同時(shí)展示被覆蓋部分的輪廓。當(dāng)然,如果數(shù)據(jù)本身存在面積差異,則盡量面積小的類別前置。
結(jié)果如下所示:

總結(jié)
到此這篇關(guān)于python Joypy繪制嵴線圖實(shí)例的文章就介紹到這了,更多相關(guān)python Joypy嵴線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python類的動(dòng)態(tài)修改的實(shí)例方法
這篇文章主要介紹了Python類的動(dòng)態(tài)修改的實(shí)例方法的相關(guān)資料,需要的朋友可以參考下2017-03-03
python實(shí)現(xiàn)Dijkstra靜態(tài)尋路算法
這篇文章主要介紹了python實(shí)現(xiàn)Dijkstra靜態(tài)尋路算法,常用于路由算法或者作為其他圖算法的一個(gè)子模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

