Python的画图工具箱即Matplotlib,类似于Matlab里面画图功能的包。
在Python 里有一个集成了Matplotlib和其他一些数学包比如Numpy的包,叫Pylab,所以一般只需要:from pylab import *
在这个包里面已经默认了numpy的alias为np,所以如果需要调用numpy直接就用它的alias就行。
#返回一个从x1到x2的共有num个数的数组(x1,x2,num都代表参数,下同)
X=np.linspace(x1, x2, num, endpoint=True)
这里如果endpoint设为True则重点为x2,设为False则终点为x2前一点。默认为True。
#创建一个m*n个点的图,图的分辨率为t
figure(figsize=(m, n), dpi=t)
#创建一个p*q的子图,接下来的图绘在第r块子图上
subplot(p, q, r)
#画出以X数组为x轴数值,Y数组为y轴数值的图,线条颜色为红色,线条宽度为2.0(像素)且连续
plot(X, Y, color="red", linewidth=2.0, linestyle="-")
#设置横纵轴的上下限
xlim(x1, x2)
ylim(y1, y2)
这里为了更好地设置上下限,可以用线条的X数组和Y数组的上下限来设置,如:
x1, x2 = X.min()1.1, X.max()1.1
y1, y2 = Y.min()1.1, Y.max()1.1
或者可以引入差分的思想:
xmin, xmax = X.min(), X.max()
ymin, ymax = Y.min(), Y.max()
dx = (xmax - xmin) * 0.2
dy = (ymax - ymin) * 0.2
x1, x2 = xmin-dx, xmax+dx
y1, y2 = ymin-dy, ymax+dy
#设置横纵轴的长度及划分(即在这些点标记)
xticks(np.linspace(x1, x2, num, endpoint=True))
yticks(np.linspace(y1, y2, num, endpoint=True))
这里的xticks或yticks里面的数组值可以设置成我们想要知道的特殊值。
在边界值包含了pi这种字符时,可以用LaTex来做划分的标签(使其更美观):
xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-pi$', r'$-pi/2$', r'$0$', r'$+pi/2$', r'$+pi$'])
yticks([-1, 0, +1], [r'$-1$', r'$0$', r'$1$'])
本文主要参考Matplotlib tutorial.将里面的范例总结成了函数(参数)形式。
评论
查看更多