Python barh()函数:绘制条形图
条形图主要用于展现 y 轴上不同类别数据的分布特征,其可分为单条形图和多条形图。在 Python 中,可以通过 matplotlib.pyplot 模块中的 barh() 函数绘制条形图。
barh() 函数的语法格式如下:
例如,绘制一个单条形图,示例代码如下:
图 1 单条形图
再例如,绘制一个多条形图,示例代码如下:
图 2 多条形图
barh() 函数的语法格式如下:
barh(y,width,height,color,edgecolor,label)
- 参数 y:表示 y 轴上数据的类别;
- 参数 width:表示每种类别数据的数量;
- 参数 height:表示条形的宽度;
- 参数 color:表示条形的颜色;
- 参数 edgecolor:表示条形的边框颜色;
- 参数 label:表示图例内容。
例如,绘制一个单条形图,示例代码如下:
import matplotlib.pyplot as plt #显示中文 plt.rcParams['font.sans-serif']='SimHei' #显示负号 plt.rcParams['axes.unicode_minus']=False #x轴的刻度线向内显示 plt.rcParams['xtick.direction']='in' #y轴的刻度线向外显示 plt.rcParams['ytick.direction']='out' #创建画布 plt.figure(figsize=(10,8)) #条形图标题 plt.title('销售量分析表') #数据 x=[25140,68541,36584,35864,57841,78520,46333,35844] y=[0,1,2,3,4,5,6,7] #绘制条形图 plt.barh(y,x,color='green',label='销售量') #创建隐藏x轴的网格线 plt.grid(axis='x') #设置x轴标题 plt.xlabel('销售量/本') #设置y轴标题 plt.ylabel('年份') #创建x轴刻度 plt.xticks(range(10000,100000,10000)) #创建y轴刻度 plt.yticks(range(0,8,1),['2015','2016','2017','2018','2019','2020','2021','2022']) #创建文本标签 for a,b in zip(x,y): plt.text(a,b,'%.1f'%a,ha='left',va='bottom',fontsize=9) #创建图例 plt.legend(labels=['销售量'],loc=1) plt.show()上面代码的运行结果如下图所示。
图 1 单条形图
再例如,绘制一个多条形图,示例代码如下:
import matplotlib.pyplot as plt #显示中文 plt.rcParams['font.sans-serif']='SimHei' #显示负号 plt.rcParams['axes.unicode_minus']=False #x轴的刻度线向内显示 plt.rcParams['xtick.direction']='in' #y轴的刻度线向外显示 plt.rcParams['ytick.direction']='out' #创建画布 plt.figure(figsize=(10,8)) #条形图标题 plt.title('销售量分析表') #数据 x1=[25140,68541,36584,35864,57841,78520,46333,35844] x2=[35221,45214,45888,100254,52365,84512,75877,75845] x3=[75222,36525,52364,62541,78555,35214,56241,62541] x4=[35985,42555,75255,42515,92415,12545,66541,44525] y1=[0,1,2,3,4,5,6,7] y2=[0.2,1.2,2.2,3.2,4.2,5.2,6.2,7.2] y3=[0.4,1.4,2.4,3.4,4.4,5.4,6.4,7.4] y4=[0.6,1.6,2.6,3.6,4.6,5.6,6.6,7.6] #绘制条形图 plt.barh(y1,x1,height=0.2,color='green',label='《C语言》') plt.barh(y2,x2,height=0.2,color='red',label='《Python》') plt.barh(y3,x3,height=0.2,color='yellow',label='《Java》') plt.barh(y4,x4,height=0.2,color='pink',label='《Go》') #创建隐藏x轴的网格线 plt.grid(axis='x') #设置x轴标题 plt.xlabel('销售量/本') #设置y轴标题 plt.ylabel('年份') #创建x轴刻度 plt.xticks(range(10000,100000,10000)) #创建y轴刻度 plt.yticks(range(0,8,1),['2015','2016','2017','2018','2019','2020','2021','2022']) #创建文本标签 for a,b in zip(x1,y1): plt.text(a,b,'%.1f'%a,ha='left',va='bottom',fontsize=9) #创建图例 plt.legend(labels=['《C语言》','《Python》', '《Java》','《Go》'],loc=4) plt.show()上面代码的运行结果如下图所示。
图 2 多条形图