1.Matplotlib库介绍
Python优秀的数据 可视化第三方库
2.Matplotlib库的使用
Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。
import matplotlib.pyplot as plt
plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成
import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.ylabel("Grade") plt.savefig("test",dpi=600) #PNG文件 plt.show()
plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量
import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.ylabel("Grade") plt.savefig("test",dpi=600)#PNG文件 plt.show()
plt.plot(x,y)当有两个以上参数时,按照X轴和Y轴顺序绘制数据点
import matplotlib.pyplot as plt plt.plot([0,2,4,6,8],[3,1,4,5,2]) plt.ylabel("Grade") plt.axis([-1,10,0,6]) plt.show()
import matplotlib.pyplot as plt import numpy as np def f(t): return np.exp(-t)*np.cos(2*np.pi*t) a = np.arange(0.0,5.0,0.02) plt.subplot(211) plt.plot(a,f(a)) plt.subplot(2,1,2) plt.plot(a,np.cos(2*np.pi*f(a)),'r--') plt.show()
3.pyplot的plot()函数
plt.plot(x,y, format_string, **kwargs)
∙ x : X轴数据,列表或数组,可选
∙ y :Y轴数据,列表或数组
∙format_string: 控制曲线的格式字符串,可选
∙ **kwargs: 第二组或更多(x,y,format_string)
当绘制多条曲线时,各条曲线的x不能省略
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) plt.show()
颜色字符、风格字符和标 记字符可以组合使用,如下例
import matplotlib.pyplot as plt import numpy as np a =np.arange(10) plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*', a,a*4.5,'b-.') plt.show()
4.pyplot的中文显示
①pyplot并不默认支持中文显示,需要rcParams修改字体实现
import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei' #'SimHei'是黑体 plt.plot([3,1,4,5,2]) plt.ylabel("纵轴(值)") plt.savefig("test",dpi=600) #PNG文件 plt.show()
import matplotlib.pyplot as plt import matplotlib import numpy as np matplotlib.rcParams['font.family']='STSong' matplotlib.rcParams['font.size']=20 a=np.arange(0.0,5.0,0.02) plt.ylabel("纵轴:振幅") plt.xlabel("横轴:时间") plt.plot(a,np.cos(2*np.pi*a),'r--') plt.show()
②在有中文输出的地方,增加一个属性:fontproperties
5.pyplot的文本显示
6.pyplot的子绘图区域
plt.subplot2grid((3,3),(0,0),colspan=3) plt.subplot2grid((3,3),(1,0),colspan=2) plt.subplot2grid((3,3),(1,2),rowspan=2) plt.subplot2grid((3,3),(2,0)) plt.subplot2grid((3,3),(2,1))