柱状图用矩形区域来表现数据的大小,在外观上比线形图更加饱满,更有视觉冲击力。根据序列的个数,柱状图可有简单柱状图和复合柱状图。MATLAB和Python都使用bar函数绘制柱状图。
简单柱状图
下面使用绘制简单线形图相同的数据绘制简单柱状图。
\[\]
图1-3 用Python绘简单柱状图
在Python IDLE Shell窗口输入下面的语句行:
code.python
>>> import matplotlib.pyplot as plt
>>> plt.rcParams['font.sans-serif']=['SimHei']
>>> plt.rcParams['axes.unicode_minus']=False
>>> fig, ax=plt.subplots()
>>> months=['一月', x27;二月', '三月', '四月'] #绘图数据
>>> sales=[100, 80, 120, 150]
>>> bar_labels=['一月', '二月', '三月', '四月']
>>> plt.bar(months, sales, label=bar_labels) #绘柱状图
>>> ax.set_ylabel(';销售额(万元)') #y轴标题
>>> ax.set_title(';商场各月销售额') #标题
>>> plt.show()
生成图1-3。
1.2.2复合柱状图
下面使用绘制复合线形图相同的数据绘制复合柱状图。
\[\]
图1-4 用Python绘复合柱状图
在Python IDLE Shell窗口输入下面的语句行:
code.python
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> plt.rcParams['font.sans-serif']=['SimHei']
>>> plt.rcParams['axes.unicode_minus']=False
>>> fig, ax=plt.subplots()
>>> t=np.array([1,2,3,4])
>>> sales1=[100, 80, 120, 150]
>>> sales2=[180, 130, 160, 170]
>>> plt.bar(t, sales1,width=0.25,color='b') #绘制第1个序列
>>> plt.bar(t+0.25, sales2,width=0.25,color='g') #绘制第2个序列,x坐标的变化
>>> bar_labels=['一月', '二月', '三月', '四月']
>>> plt.xticks(t+0.125,bar_labels,fontsize=16) #横轴刻度线和刻度标签
>>> ax.set_ylabel('销售额(万元)')
>>> ax.set_title('两个商场各月销售额')
>>> plt.legend(labels=['商场A','商场B'],loc='upper right',fontsize=16)
>>> plt.show()
生成图1-4。