『Numpy学习指南』Matplotlib绘图
数据生成:
1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 func = np.poly1d(np.array([1,2,3,4])) 5 func1 = func.deriv(m=1) # 求一阶导数 6 func2 = func.deriv(m=2) # 求二阶导数 7 8 x = np.linspace(-10,10,30) 9 y = func(x) 10 y1 = func1(x) 11 y2 = func2(x)
1 '''正常绘图''' 2 3 plt.plot(x,y,'ro',x,y1,'g--') 4 plt.xlabel('x') 5 plt.ylabel('y') 6 plt.show()
1 '''添加子图''' 2 3 plt.subplot(311) 4 plt.plot(x,y,c='r',linestyle='-') 5 plt.title('Polynomial') 6 7 plt.subplot(312) 8 plt.plot(x,y1,c='b',linestyle='',marker='^') 9 # plt.plot(x,y1,'b^') 10 plt.title('First Derivative') 11 12 plt.subplot(313) 13 plt.plot(x,y2,c='g',linestyle='',marker='o') 14 plt.title('Second Derivative')
1 '''对数坐标''' 2 3 plt.semilogx(x,y) # 对x取对数 4 plt.semilogy(x,y) # 对y取对数 5 plt.loglog(x,y) # 同时取对数
1 '''颜色填充''' 2 3 fig = plt.figure() 4 5 ax = fig.add_subplot(211) 6 ax.fill_between(x,y,y1,facecolor='b') 7 ax.grid(True) 8 9 ax2 = fig.add_subplot(212) 10 ax2.fill(x,y,facecolor='b',alpha=0.3) 11 ax2.fill(x,y1,facecolor='g',alpha=0.3) 12 ax2.grid(True) 13 # plt.show()
1 '''三维绘图''' 2 3 from mpl_toolkits.mplot3d import Axes3D 4 5 u = np.linspace(-1,1,100) 6 x,y = np.meshgrid(u,u) # 网格坐标生成函数 7 z = x**2+y**2 8 9 fig = plt.figure() 10 ax = Axes3D(fig) 11 # cmap = color_map,另外两个参数是瓦片步长 12 ax.plot_surface(x,y,z,rstride=4,cstride=4,cmap='rainbow')
1 '''三维绘等高线图''' 2 3 u = np.linspace(-1,1,100) 4 x,y = np.meshgrid(u,u) # 网格坐标生成函数 5 z = x**2+y**2 6 7 fig = plt.figure() 8 ax = fig.add_subplot(111) 9 ax.contourf(x,y,z) 10 plt.show()