python調(diào)用matplotlib模塊繪制柱狀圖
我們可以調(diào)用matplotlib 繪制我們的柱狀圖,柱狀圖可以是水平的也可以是豎直的。
在這里我先記錄下豎直的柱狀圖怎么繪制
在這里一般用到的函數(shù)就是bar
# bar(left, height, width=0.8, bottom=None, hold=None, **kwargs) # 繪制柱形圖 # left:柱形圖的x坐標(biāo) # height柱形圖的高度,以0.0為基準(zhǔn) # width:柱形圖的寬度,默認(rèn)0.8 # facecolor:顏色 # edgecolor:邊框顏色n # bottom:表示底部從y軸的哪個(gè)刻度開始畫 # yerr:應(yīng)該是對應(yīng)的數(shù)據(jù)的誤差范圍,加上這個(gè)參數(shù),柱狀圖頭部會有一個(gè)藍(lán)色的范圍標(biāo)識,標(biāo)出允許的誤差范圍,在水平柱狀圖中這個(gè)參數(shù)為xerr
在這里我一般特別喜歡將柱狀圖的邊緣顏色設(shè)置為白色,因?yàn)檫@樣畫出來比較好看
eg.
plt.bar(x,+y1,width=0.8,facecolor="#9999ff",edgecolor="white",yerr=error)
下面來說一下畫bar chart 的步驟
首先我們需要引入兩個(gè)模塊:
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt
n = 12
# 生成一個(gè)1-12的列表,不包括12,[ 0 1 2 3 4 5 6 7 8 9 10 11]
x = np.arange(n)
# np.random.uniform(0.5,1.0,n),生成n個(gè)0.5-1.0之間的隨機(jī)數(shù)
y1 = 3 * np.random.uniform(0.5,1.0,n)
y2 = 3 * np.random.uniform(0.5,1.0,n)
# 在這里我們是使用一個(gè)隨機(jī)生成函數(shù)生成了兩組y的值,生成的這個(gè)隨機(jī)數(shù)是服從均勻分布的
# 如果我們的數(shù)值比較少我們可以直接給y賦值
# y = [5,7,3]
# 生成一個(gè)包含有n個(gè)值,均為0.2的list,表示允許的誤差范圍[-0.2,0.2]
error = [0.2,] * n
# bar(left, height, width=0.8, bottom=None, hold=None, **kwargs)
# 繪制柱形圖
# left:柱形圖的x坐標(biāo)
# height柱形圖的高度,以0.0為基準(zhǔn)
# width:柱形圖的寬度,默認(rèn)0.8
# facecolor:顏色
# edgecolor:邊框顏色n
# bottom:表示底部從y軸的哪個(gè)刻度開始畫
# yerr:應(yīng)該是對應(yīng)的數(shù)據(jù)的誤差范圍,加上這個(gè)參數(shù),柱狀圖頭部會有一個(gè)藍(lán)色的范圍標(biāo)識,標(biāo)出允許的誤差范圍,在水平柱狀圖中這個(gè)參數(shù)為xerr
plt.bar(x,+y1,width=0.8,facecolor="#9999ff",edgecolor="white",yerr=error)
plt.bar(x,-y2,facecolor="#ff9999",edgecolor="white")
# 繪制文字,顯示柱狀圖形的值
for x,y1,y2 in zip(x,y1,y2):
plt.text(x+0.4,y1+0.05,'%.2f' % y1,ha='center',va='bottom')
plt.text(x+0.4,-(y2+0.05),'%.2f' % y2,ha='center',va='top')
plt.ylim(-3.5,3.5)
plt.show()
如果我們需要的是給我們柱狀圖繪制一些標(biāo)記,比如橫坐標(biāo)和縱坐標(biāo)的值,這個(gè)時(shí)候我們可以像下面這樣做。這個(gè)例子我用的是官網(wǎng)上的代碼。
# Credit: Josh Hemann
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
from collections import namedtuple
n_groups = 5
means_men = (20, 35, 30, 35, 27)
std_men = (2, 3, 4, 1, 2)
means_women = (25, 32, 34, 20, 25)
std_women = (3, 5, 2, 3, 3)
fig, ax = plt.subplots()
index = np.arange(n_groups)
bar_width = 0.35
opacity = 0.4
error_config = {'ecolor': '0.3'}
rects1 = ax.bar(index, means_men, bar_width,
alpha=opacity, color='b',
yerr=std_men, error_kw=error_config,
label='Men')
rects2 = ax.bar(index + bar_width, means_women, bar_width,
alpha=opacity, color='r',
yerr=std_women, error_kw=error_config,
label='Women')
ax.set_xlabel('Group')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(index + bar_width / 2)
ax.set_xticklabels(('A', 'B', 'C', 'D', 'E'))
ax.legend()
fig.tight_layout()
plt.show()
在這里我們設(shè)置的X的坐標(biāo)以及上邊的標(biāo)簽,我們主要的代碼是:
ax.bar(index, means_men, bar_width,
alpha=opacity, color='b',
yerr=std_men, error_kw=error_config,
label='Men')
ax.set_xticks(index + bar_width / 2) # 設(shè)置坐標(biāo)的其實(shí)坐標(biāo)
ax.set_xticklabels(('A', 'B', 'C', 'D', 'E'))
這里的bar函數(shù)的參數(shù)和我們開始介紹的是一樣的,只是我們在設(shè)置坐標(biāo)的時(shí)候,一般是我們的條形圖的中間所以我們要把寬度除以2
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
10行Python代碼計(jì)算汽車數(shù)量的實(shí)現(xiàn)方法
這篇文章主要介紹了10行Python代碼計(jì)算汽車數(shù)量的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Django結(jié)合ajax進(jìn)行頁面實(shí)時(shí)更新的例子
今天小編就為大家分享一篇Django結(jié)合ajax進(jìn)行頁面實(shí)時(shí)更新的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
使用Python編寫Prometheus監(jiān)控的方法
今天小編就為大家分享一篇關(guān)于使用Python編寫Prometheus監(jiān)控的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10
詳解Python如何利用petl做數(shù)據(jù)遷移
隨著數(shù)據(jù)量的不斷增長,數(shù)據(jù)遷移成為了一項(xiàng)必不可少的任務(wù),本文就來為大家詳細(xì)介紹一下如何使用PETL進(jìn)行數(shù)據(jù)遷移,并給出一些實(shí)踐案例,需要的可以參考下2024-01-01
python高階函數(shù)functools模塊的具體使用
本文主要介紹了python高階函數(shù)functools模塊的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
python機(jī)器學(xué)習(xí)基礎(chǔ)決策樹與隨機(jī)森林概率論
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)基礎(chǔ)決策樹與隨機(jī)森林概率論詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11

