條形圖是數據可視化圖形中非常基本和常用的圖表。簡單解釋壹下,條形圖也叫條形圖、柱狀圖、條形圖、柱狀圖、柱狀圖、條形圖,是以壹個長方形的長度為變量的統計圖。條形圖用於比較兩個或多個值(在不同時間或不同條件下),只有壹個變量,通常用於分析較小的數據集。條形圖也可以水平排列或多維表達。
那麽壹個普通的條形圖是什麽樣子的呢?
什麽時候!什麽時候!什麽時候!看起來像下圖:
圖片先出來。我們來研究壹下這幅圖是怎麽畫出來的。我們先來看看原始數據是什麽樣子的:
實際畫圖過程和畫線很像,只是使用的畫圖功能不同。繪制條形圖plt.bar()的功能:
由於這只是壹個最簡單的條形圖,所以對於條形圖的函數plt.bar()來說,實際上還有很多參數設置可以探索,類似於線形圖的函數plt.plot()的探索。感興趣的小朋友可以自己去探索壹下。
按條形長度順序顯示的條形圖。
當然也可以有其他設置。比如上圖中的線條凹凸不平。這是因為X軸上的數據是按學校名稱排序的,那麽可以按分數排序嗎?也就是說,讓所有的矩形按照從高到矮或者從矮到高的順序排列?
當然啦!這裏需要強調的是,條的排列等信息都是從原始數據中推導出來的。為了改變條的順序,需要改變繪圖的源數據!
原始數據逆序排序後,截取前十位數據賦給data _虞雯,作為新的數據源傳入繪圖函數plt.bar(),繪圖自然不壹樣。
先看看數據是什麽樣的:
根據這個數據源繪制的圖表如下。因為用於繪圖的數據是按降序排序的,所以生成條形圖的條形也將按降序顯示:
很多時候,我們常見的條形圖還有另外壹種呈現形式,那就是橫條圖。比較火的動態條形圖大部分也是橫條圖。那麽如何繪制水平條形圖呢?
了解plt.bar()的主要參數
其實不難,只要知道plt.bar()函數中主要參數的作用就行了!條形圖函數中有五個主要參數,即x、高度、寬度、底部和方向。其中X控制每個條在X軸上的位置,height控制每個條的長度,width控制每個條的寬度,bottom控制每個條在Y軸方向上的起始位置,orientation控制條的方向,是垂直還是水平,默認為垂直。
通過壹個小例子來理解這些參數的功能:
上述代碼行輸出的圖形如下:
對比代碼和實際輸出的條形圖,各主要參數的作用是否壹目了然?
水平條形圖
了解了這些參數的作用後,把豎條圖轉換成橫條圖就不難了!
需要將X軸上所有條的位置設置為0,所以所有條都是從最左邊畫的;因為是橫條圖,所以橫條的寬度實際上顯示的是數據大小,寬度參數設置為原始數據中的中文得分;Bottom控制Y軸方向各條的起始位置,設置bottom=range(10)將Y軸各條的起始位置設置為不同,以避免條重疊;高度控制每個條形在Y軸方向的長度。條形圖水平設置後,Y軸上的長度就失去了測量數據的意義,可以直接設置壹個常數。最後,將條的方向設置為水平,即orientation = "horizontal "。
溫馨提示:數據和標簽必須匹配,即plt.bar()的關鍵數據要和從plt.yticks()中提取的標簽壹壹對應。如果不匹配,整個畫面顯示的結果將是壹個錯誤的結果!
上述代碼生成的條形圖如下:
感覺上面生成橫條圖的方法有點迂回,和人們的習慣認知有點出入。畫橫條圖就這麽反人類嗎?
當然不是。其實有壹個更簡單的方法,畫壹個水平條形圖。之所以壹開始沒有直接用這個簡單的方法,是為了讓大家體驗壹下條形圖參數的靈活設置。而且,如果能夠理解纏繞方法,那麽簡單的方法將更加難以理解和使用!
先來了解壹下類似於plt的plt.barh()函數。Bar()函數。
plt.barh()函數是壹個專用於繪制水平條形圖的函數。主要參數是:
Y控制顯示在Y軸上的標簽源寬度,控制水平條的長度,即用於比較的數據源高度條的寬度主要是要設置的三個參數,這比用plt.bar()函數畫水平條形圖簡單多了。具體代碼如下:
渲染:
和plt.bar()函數畫的橫條圖是壹樣的吧?如果以後需要畫橫條圖,盡量使用plt.barh()函數。畢竟是專門用來畫這類圖的,簡單易用。
但是,實際工作中對條形圖的需求並不僅限於這些。比如例子中,只是為了顯示各個學校的語文成績。有時需要將各個學科的分數同時顯示在壹個條形圖中,有時需要繪制堆疊條形圖來顯示各個學科的分數和總分。這些圖表怎麽畫?其實只要妳明白每個參數的含義,畫這些圖就不是問題。至於怎麽畫他們,看下壹個分解!