Matplotlib生成向量错误求助:如何修正代码输出结果?
修复Matplotlib绘制单个向量的错误问题
你提供的代码意图绘制从原点(0,0)指向(4,1)的向量,但输出结果不符合预期,问题出在plt.quiver的参数配置上。
问题原因
quiver函数中,仅设置units='xy'和scale=1不够,缺少scale_units='xy'参数时,向量的缩放参考不是坐标轴的单位长度,导致显示的向量长度和方向偏离预期。
修复方案1:完善quiver参数
添加scale_units='xy',让向量的U、V分量直接对应坐标轴上的长度,确保向量从(0,0)准确指向(4,1):
import numpy as np import matplotlib.pyplot as plt X = [0] Y = [0] U = [4] V = [1] # 补充scale_units='xy'参数,匹配坐标轴单位 plt.quiver(X, Y, U, V, color='b', units='xy', scale=1, scale_units='xy') plt.title('Single Vector') plt.xlim(-2, 5) plt.ylim(-2, 2.5) plt.grid() plt.show()
修复方案2:使用arrow函数替代
如果觉得quiver参数复杂,也可以用更直观的plt.arrow绘制向量,代码逻辑更清晰:
import matplotlib.pyplot as plt # 参数依次为:起点x, 起点y, x方向长度, y方向长度, 箭头宽度, 箭头长度 plt.arrow(0, 0, 4, 1, head_width=0.2, head_length=0.3, color='b') plt.title('Single Vector') plt.xlim(-2, 5) plt.ylim(-2, 2.5) plt.grid() plt.show()
内容的提问来源于stack exchange,提问作者Albino Almeida
相关产品推荐
相关产品推荐

