小編寫這篇文章的一個主要目的,主要是給大家介紹的內容是使用matplotlib去進行繪制并排柱狀圖,那么,一個具體的操作實例是什么呢?下面就給大家詳細解答下。
一、概念說明
柱狀圖(bar chart),從相同的橫坐標出發,以不同的數值大小來設定柱子的高度,進而表示無序或有序的定性數據間某個定量指標的大小關系。
示意圖如下:
(1)在無序的橫坐標情景下,我們常常根據數值大小降序排布。
(2)柱狀圖在縱坐標上可以有正有負,但必須以基準的0線開始繪制,否則會傳遞錯誤的視覺信息。
(3)當類別間數值差異較大/類別較多/類別命名文本較長時,我們可以考慮將柱形圖逆轉90°,即使用條形圖。
(4)如果手中的數據是二維定性的情況,可以根據需求分別選擇堆疊柱狀圖或者并排柱狀圖。
①堆疊柱狀圖:
---關注類0-4的大類總量的對比
---同時關注小類a/b占大類的比重
②并排柱狀圖(案例對象)
---更關注小類系列1-3在不同大類1-4間的對比
---關注小類在大類間數值分布的差異
---如果要呈現大類總量信息,可以增加折線圖
二、數據展示
在本案例中,我們是希望使用python編碼,利用其中matplotlib包繪制并排柱狀圖,因此我們需要二維定序數據。
根據我專欄其它的案例呢,還是繼續使用隨機選的八座城市,目的是希望了解八座城市小初高學校數量對比(柱狀),以及人口數情況(折線)。
秉持城市統計公報中有就記錄,無就百度的原則,得到以下僅供繪圖的數據。
上述excel表格的數據分別存放,利用下述代碼我們將其導入
import pandas as pd school_num=pd.DataFrame(pd.read_excel('./小初高學校個數.xlsx')) people_num=pd.DataFrame(pd.read_excel('./2020人口普查數據.xlsx'))
三、圖像繪制
import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np #中文和正負號設置 mpl.rcParams["font.sans-serif"]=["SimHei"] mpl.rcParams["axes.unicode_minus"]=False x=np.arange(8) bar_width=0.3 tick_label=school_num['城市'] plt.figure(figsize=(13,7)) #柱狀 plt.bar(x,school_num['小學'],bar_width,align="center",color="#2bb179",label='小學',alpha=0.5) plt.bar(x+bar_width,school_num['初中'],bar_width,color="b",align="center",label="初中",alpha=0.5) plt.bar(x+bar_width*2,school_num['高中'],bar_width,color="orange",align="center",label="高中",alpha=0.5) #折線 plt.plot(x+bar_width,people_num['人數-萬'],color="#ff796c",marker='o',lw=2,label='人口普查數(萬)') text_x=[x,x+bar_width,x+bar_width*2] text_x=[text_x<i>[j]for i in range(3)for j in range(8)] text_y=[school_num['小學'],school_num['初中'],school_num['高中']] text_y=[text_y<i>[j]for i in range(3)for j in range(8)] plt.xticks(x+bar_width,tick_label,fontsize=18) plt.yticks(fontsize=18) plt.xlabel("城市",fontsize=20) plt.ylabel("學校數量",fontsize=20) plt.legend(fontsize=16) plt.grid() #柱型加數字 for x,y,text in zip(text_x,text_y,text_y): plt.text(x-0.12,y+15,str(text),fontsize=12) #plt.savefig(r'./并排柱狀圖示例.png') plt.bar(橫坐標位置,柱子數值)---橫坐標位置一般用np.arange(橫坐標類別數)得到,因此在并排中,每一個小類,都要右移窗寬個單位,如果您覺得緊挨著顯得很密,也可以加0.1讓它們稍稍隔開。 plt.plot的橫坐標我選擇x+bar_width是因為我們有三個柱子,我希望折線的原點是對應橫坐標居中顯示。 plt.text---這一部分是給整幅圖加文字,但具體加在什么位置需要自己指定。 plt.xticks(原名稱,新名稱)
繪制結果:
希望對您有所幫助~
總結
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128445.html
摘要:有一些表示常見圖形的對象稱為塊,完整的集合位于。中的繪圖函數在中,有行標簽列標簽分組信息。密度圖通過計算可能會產生觀測數據的連續概率分布的估計而產生的。在探索式數據分析工作中,同時觀察一組變量的散布圖是很有意義的。 我們在上一篇介紹了 pandas,本篇介紹 matplotlib。 繪圖和可視化 一個用于創建出版質量圖表的桌面繪圖包。 Matplotlib API入門 Figure ...
??蘇州程序大白一文從基礎手把手教你Python數據可視化大佬??《??記得收藏??》 目錄 ????開講啦!!!!????蘇州程序大白?????博主介紹前言數據關系可視化散點圖 Scatter plots折線圖強調連續性 Emphasizing continuity with line plots同時顯示多了圖表 數據種類的可視化 Plotting with categorical da...
摘要:文章中我們學習的主要技能有繪制直線圖,繪制柱狀圖,繪制橫向柱狀圖,繪制堆疊柱狀圖,繪制箱線圖,繪制散點圖等內容。創建一個新的圖表把圖表分割成的網格,第一個參數行數,第二個參數列數,第三個參數圖形編號垂直柱狀圖水平柱狀圖堆疊柱狀圖箱線圖散點圖 文章中我們學習的主要技能有:繪制直線圖,繪制柱狀圖,繪制橫向柱狀圖,繪制堆疊柱狀圖,繪制箱線圖,繪制散點圖等內容。 x=[1,2,3,4] y=[...
摘要:先從最常見的圖形開始折線圖條形圖柱狀圖散點圖圓形圖。追蹤和的過程對用戶是隱形的,我們只需要知道每次調用繪圖方法,該繪圖效果都會呈現在當前中就可以了后面會講如何手動變更當前和折線圖條形圖柱狀圖散點圖圓形圖分別對應著中的五個繪圖函數。 利用 Matplotlib 繪制數據圖形(一) 了解了 Matplotlib 的基本知識之后,我們就可以開始上手試試畫圖了。 先從最常見的圖形開始:折線圖、...
摘要:這篇學習筆記是入門篇的最后一部分,將前幾篇的內容整合到一起,繪制帶過渡效果的柱狀圖,這次先給大家看一下結果圖。 這篇學習筆記是入門篇的最后一部分,將前幾篇的內容整合到一起,繪制帶過渡效果的柱狀圖,這次先給大家看一下結果圖。 結果 showImg(https://segmentfault.com/img/bVblfGG?w=1230&h=1210); 前言 先放結果圖是想反饋一下在整合基...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02