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