Matplotlib的概念這里就不多介紹了,關(guān)于繪圖庫Matplotlib的安裝方法:點擊這里
小編之前也和大家分享過python使用matplotlib實現(xiàn)的折線圖和制餅圖效果,感興趣的朋友們也可以點擊查看,下面來看看python使用matplotlib繪制柱狀圖的方法吧,具體如下:
1. 基本的柱狀圖
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar(range(len(data)), data)plt.show()

plt.bar函數(shù)簽名為:
bar(left, height, width=0.8, bottom=None, **kwargs)
事實上,left,height,width,bottom這四個參數(shù)確定了柱體的位置和大小。默認(rèn)情況下,left為柱體的居中位置(可以通過align參數(shù)來改變left值的含義),即:
(left - width / 2, bottom)為左下角位置(left + width / 2, bottom + height)為右上角位置例如:
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar([0.3, 1.7, 4, 6, 7], data, width=0.6, bottom=[10, 0, 5, 0, 5])plt.show()

2. 設(shè)置柱體樣式
(1)顏色
通過facecolor(或fc)關(guān)鍵字參數(shù)可以設(shè)置柱體顏色,例如:
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar(range(len(data)), data, fc='g')plt.show()

通過color關(guān)鍵字參數(shù) 可以一次性設(shè)置多個顏色,例如:
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar(range(len(data)), data, color='rgb') # or `color=['r', 'g', 'b']`plt.show()

(2)描邊
相關(guān)的關(guān)鍵字參數(shù)為:
例如:
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar(range(len(data)), data, ec='r', ls='--', lw=2)plt.show()

(3)填充
hatch關(guān)鍵字可用來設(shè)置填充樣式,可取值為:/, /, |, -, +, x, o, O, ., *。例如:
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.bar(range(len(data)), data, ec='k', lw=1, hatch='o')plt.show()
3. 設(shè)置tick label
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']plt.bar(range(len(data)), data, tick_label=labels)plt.show()

4. 堆疊柱狀圖
通過bottom參數(shù),可以繪制堆疊柱狀圖。例如:
import numpy as npimport matplotlib.pyplot as pltsize = 5x = np.arange(size)a = np.random.random(size)b = np.random.random(size)plt.bar(x, a, label='a')plt.bar(x, b, bottom=a, label='b')plt.legend()plt.show()

5. 并列柱狀圖
繪制并列柱狀圖與堆疊柱狀圖類似,都是繪制多組柱體,只需要控制好每組柱體的位置和大小即可。例如:
import numpy as npimport matplotlib.pyplot as pltsize = 5x = np.arange(size)a = np.random.random(size)b = np.random.random(size)c = np.random.random(size)total_width, n = 0.8, 3width = total_width / nx = x - (total_width - width) / 2plt.bar(x, a, width=width, label='a')plt.bar(x + width, b, width=width, label='b')plt.bar(x + 2 * width, c, width=width, label='c')plt.legend()plt.show()

6. 條形圖
使用barh方法繪制條形圖。例如:
import matplotlib.pyplot as pltdata = [5, 20, 15, 25, 10]plt.barh(range(len(data)), data)plt.show()

plt.barh方法的簽名為:
barh(bottom, width, height=0.8, left=None, **kwargs)
可以看到與plt.bar方法類似。因此堆積條形圖和并列條形圖的畫法與前面類似,不做贅述。
7. 正負(fù)條形圖
import numpy as npimport matplotlib.pyplot as plta = np.array([5, 20, 15, 25, 10])b = np.array([10, 15, 20, 15, 5])plt.barh(range(len(a)), a)plt.barh(range(len(b)), -b)plt.show()
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選