1.Matplotlib介绍
什么是Matplotlib
Matplotlib是一个Python的绘图库,它可与 NumPy 一起使用,可以代替M
Matplotlib安装
由于Matplotlib是第三方库,所以我们需要安装它才可以使用。注意,Matplotlib3.0要求python3版本才可安装使用。
安装命令:pip install matplotlib
安装可参考官网:https://matplotlib.org/users/installing.html
2.使用matplotlib绘图
使用plt.figure生成一张新的画布
注意
- 在IPython中,执行该代码一个空白的绘图窗口就会出现,但在Jupyter中则没有任何显示
但是可以通过fig.add_subplot创建一个或多个子图。
如:带有四个子图的空白Matplotlib图片
除此之外,Matplotlib包含一个便捷方法plt.subplots创建一个新的图片,然后返回包含了已生成子图对象的Numpy数组。
- plt.subplots(nrows, ncols, sharex, sharey)
- nrows子图的行数
- ncols子图的列数
- sharex 所有子图使用相同的x轴刻度
- sharey 所有子图使用相同的y轴刻度
那么实际上,当我们不需要使用子图时,可以通过plt对象直接绘制图形。
3.使用matplotlib绘制折线图
折线图可以通过plot()函数来绘制
- plt.plot(x, y) # 使用默认的线样式及颜色绘制x,y构建的图形
并且,plt.plot()函数除了传入制图数据,还可以设置线的颜色等。
- color 设置线的颜色
- linestyle 设置线的样式
- marker 标记样式
plt.plot()参数使用具体可参考:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.plot.html#matplotlib.axes.Axes.plot
图形组成
实际上,图形的组成除了x,y轴。还有很多组件。如下图
常用的plt方法
plt.figure(figsize=None,dpi=None) #生成新的图片,figsize:图片大小,dpi:透明度
plt.savefig(fname) #保存图片
plt.xticks(ticks=None) #设置x轴刻度的值
plt.yticks(ticks=None) #设置y轴刻度的值
plt.xlabel(xlabel) #设置x轴标签
plt.ylabel(ylabel) #设置y轴标签
plt.title() #设置图标题
plt.grid() #根据x轴和y轴的数值展示轴网格
中文显示问题
当我们需要设置轴标签,标题等,通常会使用到中文。但是,matplotlib默认不显示中文,如图:
解决方法
方法一
import matplotlib
font = { 'family':'SimHei', 'weight':'bold', 'size':12
}
matplotlib.rc("font", **font)
方法二
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:windowsfontssimsun.ttc", size=14)
x = [1,2,3,4]
y = [3,2,1,3]plt.plot(x,y)
plt.xlabel("x轴标签",fontproperties=font)
plt.show()
练习
如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况
练习
假设大家在30岁的时候,根据自己的实际情况,统计出来了你和同桌从11岁到30岁每年交的男女朋友的数量如列表a和b,请绘制出该数据的折线图,以便分析自己和同桌每年交男女朋友的数量走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,2,3,1,1,1,1,1,2,1,1,2,3,2,2]
要求:
- y轴表示个数
- x轴表示岁数,比如11岁,12岁