面积图

跟柱状图一样,面积图也是用面来表现数据的大小和分布。不同的是,它是用序列对应的折线与横轴之间的面表示数据。

简单面积图

下面使用绘线形图和柱状图相同的数据绘面积图。

Document Image
\[\]

图1-5 用Python绘简单面积图

Python中用stackplot函数绘面积图。在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]
>>> plt.stackplot(months, sales,color='y')    #绘面积图
>>> ax.set_ylabel('销售额(万元)')
>>> ax.set_title('商场各月销售额')
>>> plt.show()

生成图1-5。

堆叠面积图

有多组数据的情况,可以用堆叠面积图来进行表现。

Document Image
\[\]

图1-6 用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()
>>> months=['一月', '二月', '三月', '四月']
>>> sales1=[100, 80, 120, 150]
>>> sales2=[180, 130, 160, 170]
>>> plt.stackplot(months, sales1,sales2)    #绘堆叠面积图
>>> labels=['一月', '二月', '三月', '四月']
>>> plt.xticks([0,1,2,3],labels,fontsize=16)
>>> ax.set_ylabel('销售额(万元)')
>>> ax.set_title('两个商场各月销售额')
>>> plt.legend(labels=['商场A','商场B'],loc='lower right',fontsize=16)
>>> plt.show()

生成图1-6。