下面分别在二维三维举例说明。
1. 二维绘图
1) 描述:
绘制极坐标系中r=1他r=2cosθ的相交部分
(没画的时候,我确实没看出r=2cosθ也是正圆)
绘制极坐标系中r=1他r=2cosθ的相交部分
(没画的时候,我确实没看出r=2cosθ也是正圆)
需要限制绘图区域时可以这么做:
#设置x轴范围
xlim(-2.5, 2.5)
#设置y轴范围
ylim(-1, 1)
xlim(-2.5, 2.5)
#设置y轴范围
ylim(-1, 1)
2) 程序
- import numpy as np
- import matplotlib.pyplot as plt
- plt.figure(1)
- ax = plt.subplot(111)
- x = np.linspace(0, np.pi * 2, 200) # 在0到2pi之间,均匀产生200点的数组
- # r = 2cosθ
- r = 2 * np.cos(x) # 半径
- ax.plot(r * np.cos(x), r * np.sin(x))
- # r = 1
- r = 1
- ax.plot(r * np.cos(x), r * np.sin(x))
- plt.show()
3) 运行结果
2. 三维绘图
1) 描述:
绘制向量函数r(t)=(sint,cost,t)的图,即向量r的坐标x,y,z都是t的函数,分别是x(t)=sint, y(t)=cost, z(t)=t。可将函数视为“大黄蜂”的飞行曲线,即t时刻,它在空间中的位置是(x,y,z),以及它的导数(飞行速度)x’(t)=cost, y’(t)=-sint,z=1,即r’(t)=(cost,-sint,1)
2) 程序
- import numpy as np
- import matplotlib.pyplot as plt
- from mpl_toolkits.mplot3d import Axes3D
- fig = plt.figure(1)
- ax = fig.add_subplot(1,1,1, projection='3d') # 指定三维空间做图
- t = np.linspace(0, 4, 200) # 在0到4之间,均匀产生200点的数组
- theta = t * 2 * np.pi # 角度
- # r(t)=(sint,cost,t)
- z = t
- x = np.sin(theta)
- y = np.cos(theta)
- ax.plot(x, y, z, label='r(t)')
- # r’(t)
- z = 1
- x = np.cos(theta)
- y = -np.sin(theta)
- ax.plot(x, y, z, label='r\'(t)')
- ax.legend()
- plt.show()
3) 运行结果
3. 三维曲面
1) 描述
画曲面 z = x^2 +y^2
2) 程序
- from matplotlib import pyplot as plt
- import numpy as np
- from mpl_toolkits.mplot3d import Axes3D
- fig = plt.figure()
- ax = Axes3D(fig)
- X = np.arange(-2, 2, 0.1)
- Y = np.arange(-2, 2, 0.1)
- X, Y = np.meshgrid(X, Y)
- Z = X**2 + Y**2
- ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
- plt.show()