天天看點

python plot畫柱狀圖_Matplotlib繪制柱狀圖

柱狀圖和散點圖類似,也是需要兩個參數 x 和 y,但畫出來的效果差别很大,而且需要使用 bar() 函數而不是 plot() 函數。

下面是一個最簡單的例子:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]

y = [1, 2, 3, 4]

y1 = [e+1 for e in y]

y2 = [e+2 for e in y]

y3 = [e+3 for e in y]

plt.bar(x, y)

plt.savefig("bardemo1.png")

輸出的圖檔如圖 1 所示。

python plot畫柱狀圖_Matplotlib繪制柱狀圖

圖 1 普通柱狀圖

可以修改柱體的顔色,通過參數 color 來完成。例如将以上代碼的第 7 行進行如下修改:

plt.bar(x, y, color="red")

即可将柱狀體修改為紅色。

也可以設定柱體邊框的顔色,通過參數 edgecolor 來完成。例如将以上代碼的第 7 行修改為:

plt.bar(x, y, color="red", edgecolor="black")

即可将柱體邊框設定為黑色,運作後得到的圖檔如圖 2 所示。

python plot畫柱狀圖_Matplotlib繪制柱狀圖

圖 2 帶有邊框的柱狀圖

x 軸除了可以是數字資訊外,也可以是其他資訊。例如可以用柱狀圖來表示幾種程式設計語言的受歡迎程度,代碼如下:

import matplotlib.pyplot as plt

language = ('Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')

x_pos = range(len(language)) # [0, 1, 2, 3, 4, 5, 6]

pop = [10, 8, 6, 4, 2, 1]

plt.bar(x_pos, pop, align='center', alpha=0.5)

plt.xticks(x_pos, language)

plt.ylabel('Popularity')

plt.title('Programming Language Popularity)

plt.savefig("demo4.png")

運作該腳本,得到如圖 3 所示的輸出圖檔。

python plot畫柱狀圖_Matplotlib繪制柱狀圖

圖 3 設定x軸的标簽

matplotlib繪制水準柱狀圖

将柱狀圖中的 bar 改成 barh 即可,barh 表示 horizon bar,就是水準的柱狀圖。其用法和垂直的柱狀圖類似,下面是一個使用的例子:

import matplotlib.pyplot as plt

language = ('Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')

x_pos = range(len(language)) # [0, 1, 2, 3, 4, 56]

pop = [10, 8, 6, 4, 2, 1]

plt.barh(x_pos, pop, align='center', alpha=0.5)

plt.yticks(x_pos, language)

plt.xlabel('Popularity')

plt.title('Programming Language Popularity')

plt.savefig("demo5.png")

運作該腳本,得到的輸出圖檔如圖 4 所示。

python plot畫柱狀圖_Matplotlib繪制柱狀圖

圖 4 水準的柱狀圖