如何在Matplotlib绘制的向量场图中添加y=x²曲线?
在向量场中添加曲线$y=x^2$的正确方法
问题出在你用来生成曲线的x是meshgrid生成的二维网格数组,直接用它调用plt.plot会绘制大量冗余线条,导致显示异常。你需要单独创建一组一维的x数据来生成曲线的y值。
修改后的完整代码如下:
import matplotlib.pyplot as plt import numpy as np # 生成向量场的网格数据 x_grid, y_grid = np.meshgrid(np.arange(-3, 3, .35), np.arange(-3, 3, .35)) u = x_grid v = y_grid # 绘制向量场 plt.quiver(x_grid, y_grid, u, v, color='black') # 生成曲线y=x²的一维数据 x_curve = np.linspace(-3, 3, 100) # 生成足够多的点保证曲线平滑 y_curve = x_curve ** 2 # 绘制曲线 plt.plot(x_curve, y_curve, color='red', linewidth=2) plt.show()
关键说明:
- 将原网格变量重命名为
x_grid、y_grid,避免和曲线的一维数据变量混淆 - 用
np.linspace生成一维x数组,足够多的采样点能让曲线更平滑 - 单独计算曲线对应的y值,再调用
plt.plot即可正常显示曲线
内容的提问来源于stack exchange,提问作者ends7
相关产品推荐
相关产品推荐

