Python函数绘图

最近看数学,发现有时候画个图还真管用,对理解和展示效果都不错。尤其是三维空间和一些复杂函数,相当直观,也有助于解题。
本来想用mathlab,下载安装都太费事,杀鸡不用牛刀,Python基本就能实现,三维图还可以拖动图像来回旋转。
下面分别在二维三维举例说明。

 

1.      二维绘图

1)       描述:
绘制极坐标系中r=1他r=2cosθ的相交部分
(没画的时候,我确实没看出r=2cosθ也是正圆)

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()
 3)       运行结果


  • 9
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值