Python有很多可视化工具,本篇只介绍Matplotlib。
Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本、IPython的交互环境下、Web应用程序中使用。该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口。如果结合使用一种GUI工具包(如IPython),Matplotlib还具有诸如缩放和平移等交互功能。它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的食量(vector)和光栅(raster)图:PDF、SVG、JPG、PNG、BMP、GIF等。
Matplotlib程序包
所谓“一图胜千言”,我们很多时候需要通过可视化的方式查看、分析数据,虽然Pandas中也有一些绘图操作,但是相比较而言,Matplotlib在绘图显示效果方面更加出色。Python为Matplotlib提供了一个方便的接口,我们可以通过Pyplot对Matplotlib进行操作,多数情况下,Pyplot的命令与MATLAB有些相似。
导入Matplotlib包进行简单的操作(此处需要安装pip install matplotlib):
import matplotlib.pyplot as plt#约定俗成的写法plt #首先定义两个函数(正弦&余弦) import numpy as np X=np.linspace(-np.pi,np.pi,256,endpoint=True)#-π to+π的256个值 C,S=np.cos(X),np.sin(X) plt.plot(X,C) plt.plot(X,S) #在ipython的交互环境中需要这句话才能显示出来 plt.show()
输出结果:
绘图命令的基本架构及其属性设置
上面的例子我们可以看出,几乎所有的属性和绘图的框架我们都选用默认设置。现在我们来看Pyplot绘图的基本框架是什么,用过Photoshop的人都知道,作图时先要定义一个画布,此处的画布就是Figure,然后再把其他素材“画”到该Figure上。
1)在Figure上创建子plot,并设置属性
x=np.linspace(0,10,1000)#X轴数据 y1=np.sin(x)#Y轴数据 y2=np.cos(x**2)#Y轴数据 x**2即x的平方 plt.figure(figsize=(8,4)) plt.plot(x,y1,label="$sin(x)$",color="red",linewidth=2)#将$包围的内容渲染为数学公式 plt.plot(x,y2,"b--",label="$cos(x^2)$") #指定曲线的颜色和线性,如‘b--’表示蓝色虚线(b:蓝色,-:虚线) plt.xlabel("Time(s)") plt.ylabel("Volt") plt.title("PyPlot First Example") ''' 使用关键字参数可以指定所绘制的曲线的各种属性: label:给曲线指定一个标签名称,此标签将在图标中显示。如果标签字符串的前后都有字符'$',则Matplotlib会使用其内嵌的LaTex引擎将其显示为数学公式 color:指定曲线的颜色。颜色可以用如下方法表示 英文单词 以‘#’字符开头的3个16进制数,如‘#ff0000’表示红色。 以0~1的RGB表示,如(1.0,0.0,0.0)也表示红色。 linewidth:指定权限的宽度,可以不是整数,也可以使用缩写形式的参数名lw。 ''' plt.ylim(-1.5,1.5) plt.legend()#显示左下角的图例 plt.show()
2)在Figure上创建多个子plot
如果需要绘制多幅图表的话,可以给Figure传递一个整数参数指定图表的序号,如果所指定序号的绘图对象已经存在的话,将不创建新的对象,而只是让它成为当前绘图对象。
fig1=plt.figure(2) plt.subplot(211) #subplot(211)把绘图区域等分为2行*1列共两个区域,然后在区域1(上区域)中创建一个轴对象 plt.subplot(212)#在区域2(下区域)创建一个轴对象 plt.show()
输出结果:
我们还可以通过命令再次拆分这些块(相当于Word中拆分单元格操作)
f1=plt.figure(5)#弹出对话框时的标题,如果显示的形式为