一、Matplotlib入门
1.Matplotlib简单介绍
Matplotlib库的使用
Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。
Matplotlib.pyplot是绘制各类可视化图形的命令子库。
import matplotlib.pyplot as plt
plt.savefig()#将输出的图形存储为文件,默认PNG
2.plt.plot()
plt.plot(x,y)当有两个以上参数时,按照X轴Y轴顺序绘制数据点。
plt.axis([-1, 10, 0, 6])表示x轴从-1到10,y轴从0到6。
pyplot绘图区域:
plt.subplot(nrows, ncols, plot_number)
plt.subplot(3,2,4)
plt.subplot(324)#可省略逗号
plt.plot(x,y,format_string,**kwargs)
format_string:控制曲线的格式字符串,可选。
**kwargs:第二组或更多(x,y,format_string,**kwargs)
绘制多条曲线:
import matplotlib.pyplot as plt
import numpy as np
a = np.arange(10)
plt.plot(a, a*1.5, a, a*2.5, a, a*3.5, a, a*4.5)
format_string由颜色字符,风格字符,标记字符组成。
颜色字符:
风格字符:
标记字符:
**kwags:
3.pyplot的中文显示
第一种方法:pyplot并不默认支持中文显示,需要rcParams修改字体实现。
rcParams属性:
font.family的属性:
实例:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['font.family']='STSong'
matplotlib.rcParams['font.size']=20
a = np.arange(0.0, 5.0, 0.02)
plt.xlable('横轴: 时间')
plt.ylable('纵轴: 振幅')
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.show()
第二种方法:在有中文输出的地方,增加一个属性,fontproperties(推荐使用)
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
a = np.arange(0.0, 5.0, 0.02)
plt.xlable('横轴: 时间', fontproperties='SimHei', fontsize=20)
plt.ylable('纵轴: 振幅', fontproperties='SimHei', fontsize=20)
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.show()
4.pyplot的文本显示
实例:
plt.annotate(s, xy=arrow_crd, xytext=text_crd, arrowprops=dict)
5.pyplot的子绘图区域
plt.subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始。
plt.subplot2grid((3,3),(1,0),colspan=2)
(3,3)表示3行3列,(1,0)表示选中的网格在第一行第0列,colspan=2表示列延申为2
GridSpec类
gs[0, :]#表示横向是第0行,纵向覆盖所有
gs[1, :-1]#表示横向是第1行,纵行到最后一行
二、Matplotlib基础
1.pyplot基础图标函数概述
16个图标基础函数:
2.pyplot饼图的绘制
plt.pie()
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' #不同部分的标签
sizes = [15, 30, 45, 10] #不同部分的占比大小
explode = (0,0.1,0,0) #表示哪一部分分离突出
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, strartangle=90)#autopct表示显示数据的格式,shadow表示是否阴影,startangle表示初始角度
plt.show()
正圆形饼图:
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' #不同部分的标签
sizes = [15, 30, 45, 10] #不同部分的占比大小
explode = (0,0.1,0,0) #表示哪一部分分离突出
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, strartangle=90)#autopct表示显示数据的格式,shadow表示是否阴影,startangle表示初始角度
plt.axis('equal')
plt.show()
3.pyplot直方图的绘制
plt.hist()
直方图可以将一个数组在最低到最高的取值范围内,将它的个数绘制成图形展示出来。归一化数据的分布。
4.pyplot极坐标的绘制
面向对象绘制极坐标:
5.pyplot散点图的绘制
面向对象绘制,标题,点都变成了面向对象的方法,而不再是函数绘制。