柱状图

柱状图用矩形区域来表现数据的大小,在外观上比线形图更加饱满,更有视觉冲击力。根据序列的个数,柱状图可有简单柱状图和复合柱状图。MATLAB和Python都使用bar函数绘制柱状图。

简单柱状图

下面使用绘制简单线形图相同的数据绘制简单柱状图。

Document Image
\[\]

图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=['一月', '二月', '三月', '四月']    #绘图数据
>>> 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复合柱状图

下面使用绘制复合线形图相同的数据绘制复合柱状图。

Document Image
\[\]

图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。