柱形圖一般用於類別比較,用柱子的高低來表示數據的大小,在matplotlib中使用plt.bar()函數繪製柱形圖,先看一段代碼:
import matplotlib.pyplot as plt plt.rcParams['font.family']='SimHei'
label=['語文','數學','英語','歷史']score=[90,80,88,78]
plt.bar(label,score)plt.show()第4行label列表用於表示X軸的數據,第5行score表示各柱子的高度,第7行使用plt.bar()函數生成柱形。
plt.bar()函數還有以下可選參數:
表示柱形的對齊方式,align='center'表示柱子與刻度線的中間對齊,align='edge'表示柱子的左邊與刻度線對齊。默認值是'center'
用於設置柱子的顏色,賦值時只有一個取值,表示所有柱子顏色相同,若賦值時給定一個列表,則表示各柱子顏色各不相同。
用於設置柱子內部填充的符號,取值範圍是{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'},還可以多個字符串組合使用。
import matplotlib.pyplot as plt plt.rcParams['font.family']='SimHei'plt.figure(dpi=100)
label=['語文','數學','英語','歷史']score=[90,80,88,78]color=['b','r','g','purple']
plt.bar(label,score,width=0.4,color=color,hatch='/+')plt.title('期末考試各科成績')plt.grid(ls='--',alpha=0.5,axis='y')plt.show()第7行設置一個各柱子顏色的列表,在第9行通過參數color進行設置,參數hatch設置了/和+兩個填充的符號。
如果想在各柱子的頂部顯示該柱子的高度呢(也就是各科成績),在最後一行之前添加以下代碼即可:
for i,j in zip(label,score): plt.text(i,j+1,j,ha='center')for循環使用兩個變量遍歷訪問迭代對象zip()的每個元素,元素是由X軸和Y軸對應數據組成的元組,變量i獲取X軸數據,變量j獲取Y軸數據,將數據標籤顯示在點(i,j+1)處,即柱子頂點往上加1個像素點的地方。變量j同時也是要顯示的數據值,ha='center'的意思是數據標籤相對柱子的寬度居中對齊(水平對齊),它是horizontalalignment的縮寫,取值範圍有left,right,center;(多說一句,這裡還有垂直對齊,即verticalalignment(va),取值範圍有:center,top,bottom,baseline)
柱形圖也可以使用plt.xlabel()、plt.ylabel()、plt.legend()等設置X軸標題、Y軸標題和圖例,設置方法與折線圖相同,在此不再贅述。