MATLAB和Python都提供了plot函数绘制线形图。根据序列的个数,线形图有简单线形图和复合线形图等不同类型。
简单线形图
下面给定某商场1-4月的销售数据,用plot函数绘制简单线形图。
\[\]
图1-1 用Python绘简单线形图
Python有很多第三方包可以实现数据可视化,如Matplotlib, Seaborn, Plotly等。本书结合最基础的Matplotlib包进行介绍,很多其他的绘图包都是在Matplotlib包的基础上开发的。
使用Matplotlib包,首先要导入相应的子模块。
code.python
import matplotlib.pyplot as plt
默认时,Matplotlib包不支持中文,绘图之前作以下设置,可以在图表中显示中文。
code.python
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
在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.plot(months, sales,'r') #绘线形图
>>> ax.set_ylabel('销售额(万元)') #y轴标题
>>> ax.set_title('商场各月销售额') #图表标题
>>> plt.show() #显示图表
生成图1-1。
复合线形图
图1-1中只有一根折线,它是根据给定的一组数据绘制的。如果同时给定了几组数据,每组数据用一根折线来表现,就构成了复合线形图。不同折线可以用不同颜色、线型和线宽进行区分。复合图表需要添加图例对各组图形进行说明。
下面给定2个商场1-4月的销量数据进行绘图。
\[\]
图1-2 用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()
>>> sales1=[100, 80, 120, 150] #两组数据
>>> sales2=[180, 130, 160, 170]
>>> plt.plot(months, sales1,'r-*',linewidth=2) #分别绘制两组数据
>>> plt.plot(months, sales2,'g-.o')
>>> labels=['一月', '二月', '三月', '四月']
>>> plt.xticks([0,1,2,3],labels,fontsize=16) #横轴刻度标签
>>> ax.set_ylabel('销售额(万元)') #y轴标题
>>> ax.set_title('两个商场各月销售额') #图表标题
>>> plt.legend(labels=['商场A','商场B'],loc='lower right',fontsize=16) #图例
>>> plt.show()
生成图1-2。