Matplotlib實(shí)戰(zhàn)之玫瑰圖繪制詳解
南丁格爾玫瑰圖是一種用極坐標(biāo)下的柱狀圖或堆疊柱狀圖來展示數(shù)據(jù)的圖表。
雖然南丁格爾玫瑰圖外觀類似餅圖,但是表示數(shù)據(jù)的方式不同,它是以半徑來表示數(shù)值的,而餅圖是以扇形的弧度來表達(dá)數(shù)據(jù)的。
所以,南丁格爾玫瑰圖在視覺上會(huì)夸大數(shù)據(jù)的比例,因?yàn)榘霃胶兔娣e之間是平方關(guān)系。
因此,當(dāng)需要對(duì)比非常相近的數(shù)值時(shí),適當(dāng)?shù)目浯笥兄趨^(qū)分?jǐn)?shù)據(jù),但在追求數(shù)據(jù)準(zhǔn)確性時(shí),玫瑰圖可能不是最佳選擇。
據(jù)說,南丁格爾玫瑰圖由統(tǒng)計(jì)學(xué)家和醫(yī)學(xué)改革家佛羅倫薩?南丁格爾在克里米亞戰(zhàn)爭期間創(chuàng)造,用于反映軍醫(yī)院的季節(jié)性死亡率,從而推動(dòng)醫(yī)院條件的改善。
1. 主要元素
南丁格爾玫瑰圖的主要元素包括:
- 扇形:每個(gè)扇形代表一個(gè)類別或分組,其面積大小表示該類別或分組的數(shù)值大小。
- 半徑軸:扇形的半徑表示數(shù)據(jù)的大小,半徑越長表示數(shù)值越大。
- 圖例:圖例是餅圖的一部分,用于解釋每個(gè)餅片所代表的含義,幫助觀察者理解圖表。
- 標(biāo)簽:可在每個(gè)扇形上方或內(nèi)部添加標(biāo)簽,標(biāo)注該類別或分組的名稱或數(shù)值,幫助人們更好地理解數(shù)據(jù)。
2. 適用的場景
南丁格爾玫瑰圖適用的場景包括:
- 數(shù)據(jù)分布比較:比較不同類別或分組之間的數(shù)據(jù)分布情況,例如比較不同產(chǎn)品的銷售量或不同地區(qū)的人口分布。
- 百分比展示:展示各類別或分組所占的百分比大小,特別適用于展示相對(duì)比例的數(shù)據(jù)。
- 強(qiáng)調(diào)特定數(shù)據(jù):通過扇形的面積和顏色等元素使其更加顯眼和易于被注意到。
- 增強(qiáng)視覺吸引力:南丁格爾玫瑰圖具有獨(dú)特的視覺效果,可以吸引觀眾的注意力,適用于需要突出表達(dá)的場合。
3. 不適用的場景
南丁格爾玫瑰圖不適用的場景包括:
- 連續(xù)數(shù)據(jù)分布:南丁格爾玫瑰圖適用于展示離散的數(shù)據(jù)分布情況,不適用于展示連續(xù)數(shù)據(jù)的分布情況,例如時(shí)間序列數(shù)據(jù)。
- 多變量比較:如果需要比較多個(gè)變量之間的關(guān)系,南丁格爾玫瑰圖可能不夠直觀和有效。
- 大量數(shù)據(jù)展示:如果數(shù)據(jù)量過大,可能會(huì)導(dǎo)致扇形過小,難以辨認(rèn)和理解。
- 數(shù)據(jù)精確度要求高:南丁格爾玫瑰圖的可視化效果更多地強(qiáng)調(diào)數(shù)據(jù)分布的趨勢(shì)和相對(duì)大小,不適合展示具有高精確度要求的數(shù)據(jù)。
4. 分析實(shí)戰(zhàn)
本次使用 王者榮耀KPL 2023年春季賽的數(shù)據(jù),分析各個(gè)戰(zhàn)隊(duì)的排名和勝率。
4.1. 數(shù)據(jù)來源
數(shù)據(jù)來自王者榮耀官方網(wǎng)站,整理好的數(shù)據(jù)下載地址:databook.top/wzry/2023-spring
本次分析使用其中 各個(gè)戰(zhàn)隊(duì)的相關(guān)數(shù)據(jù):league-2023春季賽.csv
fp = "d:/share/data/league-2023春季賽.csv" df = pd.read_csv(fp) df
4.2. 數(shù)據(jù)清理
原始數(shù)據(jù)中,字段比較多,提取前10名的戰(zhàn)隊(duì),用南丁格爾玫瑰圖分析其勝率情況。
key = "勝率" data = df.sort_values("排名") data = data.reset_index() #提取前10名,只保留 戰(zhàn)隊(duì) 和 勝率 2個(gè)字段 data = data.loc[:9, ["戰(zhàn)隊(duì)", key]] #勝率字段轉(zhuǎn)換為 float 類型 data[key] = data[key].str.replace("%", "") data[key] = data[key].astype("float") data
4.3. 分析結(jié)果可視化
matplotlib
中沒有提供專門繪制南丁格爾玫瑰圖的接口,我們可以用極坐標(biāo)系下的柱狀圖來模擬。
with plt.style.context("seaborn-v0_8"): fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 1, 1], polar=True) ax.set_theta_offset(np.pi/2) ax.set_theta_direction(-1) ax.set_rlabel_position(0) n = len(data) # 每個(gè)數(shù)據(jù)的角度 angle = np.linspace(0, 2 * np.pi, n, endpoint=False) # 繪制用到的數(shù)據(jù) radius = np.array(data[key].tolist()) ax.yaxis.set_major_locator(plt.NullLocator()) # x軸刻度顯示戰(zhàn)隊(duì)名稱 ax.set_xticks(angle, data["戰(zhàn)隊(duì)"]) # 中間空出一個(gè)孔 ax.set_ylim(-10, max(data[key])) ax.bar(angle, radius, color=plt.cm.tab10.colors, width=0.62)
從分析結(jié)果可以看出,第一名重慶狼隊(duì)的勝率明顯高出其他的戰(zhàn)隊(duì),而其他戰(zhàn)隊(duì)的勝率差別不大。
說明目前 王者榮耀KPL聯(lián)盟中,各個(gè)戰(zhàn)隊(duì)的實(shí)力比較接近,比賽會(huì)非常精彩。
到此這篇關(guān)于Matplotlib實(shí)戰(zhàn)之玫瑰圖繪制詳解的文章就介紹到這了,更多相關(guān)Matplotlib玫瑰圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python threading.local代碼實(shí)例及原理解析
這篇文章主要介紹了Python threading.local代碼實(shí)例及原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python雙向鏈表原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了python雙向鏈表原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python雙向鏈表的定義、以及節(jié)點(diǎn)的判斷、遍歷、添加、刪除等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)實(shí)例探究
這篇文章主要為大家介紹了Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框
這篇文章主要介紹了python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07利用python將json數(shù)據(jù)轉(zhuǎn)換為csv格式的方法
下面小編就為大家分享一篇利用python將json數(shù)據(jù)轉(zhuǎn)換為csv格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03Python無法用requests獲取網(wǎng)頁源碼的解決方法
爬蟲獲取信息,很多時(shí)候是需要從網(wǎng)頁源碼中獲取鏈接信息的,下面這篇文章主要給大家介紹了關(guān)于Python無法用requests獲取網(wǎng)頁源碼的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07解決Jupyter因卸載重裝導(dǎo)致的問題修復(fù)
這篇文章主要介紹了解決Jupyter因卸載重裝導(dǎo)致的問題修復(fù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04python框架django項(xiàng)目部署相關(guān)知識(shí)詳解
這篇文章主要介紹了python框架django項(xiàng)目部署相關(guān)知識(shí)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11