bar()函式——python繪製柱狀圖
阿新 • • 發佈:2018-12-14
繪製柱狀圖,我們主要用到bar()函式。
只要將該函式理解透徹,我們就能繪製各種型別的柱狀圖。
我們先看下bar()的建構函式:bar(x,height, width,*,align=‘center’,**kwargs)
x 包含所有柱子的下標的列表 height 包含所有柱子的高度值的列表 width 每個柱子的寬度。可以指定一個固定值,那麼所有的柱子都是一樣的寬。或者設定一個列表,這樣可以分別對每個柱子設定不同的寬度。 align 柱子對齊方式,有兩個可選值:center和edge。center表示每根柱子是根據下標來對齊, edge則表示每根柱子全部以下標為起點,然後顯示到下標的右邊。如果不指定該引數,預設值是center。
其他可選引數有:
color 每根柱子呈現的顏色。同樣可指定一個顏色值,讓所有柱子呈現同樣顏色;或者指定帶有不同顏色的列表,讓不同柱子顯示不同顏色。 edgecolor 每根柱子邊框的顏色。同樣可指定一個顏色值,讓所有柱子邊框呈現同樣顏色;或者指定帶有不同顏色的列表,讓不同柱子的邊框顯示不同顏色。 linewidth 每根柱子的邊框寬度。如果沒有設定該引數,將使用預設寬度,預設是沒有邊框。 tick_label 每根柱子上顯示的標籤,預設是沒有內容。 xerr 每根柱子頂部在橫軸方向的線段。如果指定一個固定值,所有柱子的線段將一直長;如果指定一個帶有不同長度值的列表,那麼柱子頂部的線段將呈現不同長度。 yerr 每根柱子頂端在縱軸方向的線段。如果指定一個固定值,所有柱子的線段將一直長;如果指定一個帶有不同長度值的列表,那麼柱子頂部的線段將呈現不同長度。 ecolor 設定 xerr 和 yerr 的線段的顏色。同樣可以指定一個固定值或者一個列表。 capsize 這個引數很有趣, 對xerr或者yerr的補充說明。一般為其設定一個整數,例如 10。如果你已經設定了 yerr 引數,那麼設定 capsize 引數,會在每跟柱子頂部線段上面的首尾部分增加兩條垂直原來線段的線段。對 xerr 引數也是同樣道理。可能看說明會覺得繞,如果你看下圖就一目瞭然了。 error_kw 設定 xerr 和 yerr 引數顯示線段的引數,它是個字典型別。如果你在該引數中又重新定義了 ecolor 和 capsize,那麼顯示效果以這個為準。 log 這個引數,我暫時搞不懂有什麼用。 orientation 設定柱子是顯示方式。設定值為 vertical ,那麼顯示為柱形圖。如果設定為 horizontal 條形圖。不過 matplotlib 官網不建議直接使用這個來繪製條形圖,使用barh來繪製條形圖。
下面呼叫 bar 函式繪製一個簡單的柱形圖。
import matplotlib.pyplot as plt import numpy as np # 建立一個點數為 8 x 6 的視窗, 並設定解析度為 80畫素/每英寸 plt.figure(figsize=(8, 6), dpi=80) # 再建立一個規格為 1 x 1 的子圖 plt.subplot(1, 1, 1) # 柱子總數 N = 6 # 包含每個柱子對應值的序列 values = (25, 32, 34, 20, 41, 50) # 包含每個柱子下標的序列 index = np.arange(N) # 柱子的寬度 width = 0.35 # 繪製柱狀圖, 每根柱子的顏色為紫羅蘭色 p2 = plt.bar(index, values, width, label="rainfall", color="#87CEFA") # 設定橫軸標籤 plt.xlabel('Months') # 設定縱軸標籤 plt.ylabel('rainfall (mm)') # 新增標題 plt.title('Monthly average rainfall') # 新增縱橫軸的刻度 plt.xticks(index, ('Jan', 'Fub', 'Mar', 'Apr', 'May', 'Jun')) plt.yticks(np.arange(0, 81, 10)) # 新增圖例 plt.legend(loc="upper right") plt.show()
結果: