python用Joypy繪制嵴線圖實(shí)例
一、概念介紹
嵴線圖(ridgeline plot),用來展示同一維度的幾個數(shù)據(jù)的分布情況,每一層嵴線(峰巒)都是一個直方圖或者密度圖,層層堆疊形成了最終的嵴線圖。
· 嵴線圖一般用于多類別(>5) 的連續(xù)變量數(shù)值分布對比,也因此,如果某一個數(shù)據(jù)的取值區(qū)間過小或者分布平均時,波動不易察覺,且影響圖形呈現(xiàn)的視覺美觀。
圖形示例:
我們需要了解的是:嵴線圖的橫坐標(biāo)是數(shù)值分布區(qū)間,更像我們常使用的y軸;而縱坐標(biāo)是每一個數(shù)值序列的類標(biāo);嵴線的波峰代表在對應(yīng)值分布集中, 頻率高。
二、數(shù)據(jù)展示
在本案例中,我們希望通過嵴線圖展示隨機(jī)選擇的八座城市在過去一年的日最高溫最低溫分布情況。
數(shù)據(jù)來源于廣州11月份天氣|廣州11月份氣溫|廣州2021年11月份歷史天氣—全球天氣網(wǎng)
借助了爬蟲工具,我們簡便地收集了2020-12至2021-11的日度數(shù)據(jù),得到如下excel集合
每一個excel表格的數(shù)據(jù)呈現(xiàn)如下:
同一版數(shù)據(jù),對于氣候類型也繪制了馬賽克圖~
三、數(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年城市氣溫數(shù)據(jù)/2021年氣溫數(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----在面積圖和嵴線圖這類會存在圖像覆蓋的可視化圖像中,我們是建議調(diào)整透明度的,便于同時展示被覆蓋部分的輪廓。當(dāng)然,如果數(shù)據(jù)本身存在面積差異,則盡量面積小的類別前置。
結(jié)果如下所示:
總結(jié)
到此這篇關(guān)于python Joypy繪制嵴線圖實(shí)例的文章就介紹到這了,更多相關(guān)python Joypy嵴線圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)Dijkstra靜態(tài)尋路算法
這篇文章主要介紹了python實(shí)現(xiàn)Dijkstra靜態(tài)尋路算法,常用于路由算法或者作為其他圖算法的一個子模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01