gpt4 book ai didi

python - 我想在 Python 中绘制垂直向量

转载 作者:太空狗 更新时间:2023-10-30 01:12:40 24 4
gpt4 key购买 nike

我想简单地绘制二维垂直向量。我已经在下面的代码中实现了 2 种绘制它们的方法,但是在绘制绘图时,矢量并不“看起来”垂直于我。如果它有任何不同,我正在使用 Spyder。

import numpy as np
import matplotlib.pyplot as plt
x1=[0,0,4,3]
x2=[0,0,-3,4]
x3=[0,0,3,-4]
soa =np.array([x1,x2,x3])
X,Y,U,V = zip(*soa)
plt.figure()
ax = plt.gca()
ax.quiver(X,Y,U,V,angles='xy',scale_units='xy',scale=1)
ax.set_xlim([-10,10])
ax.set_ylim([-10,10])
plt.draw()
plt.show()

import pylab as pl
from matplotlib import collections as mc
lines = [[(0, 1), (4, 3)], [(-3, 4), (3, -4)]]
c = np.array([(1, 0, 0, 1), (0, 1, 0, 1), (0, 0, 1, 1)])
lc = mc.LineCollection(lines, colors=c, linewidths=2)
fig, ax = pl.subplots()
ax.add_collection(lc)
ax.autoscale()
ax.margins(0.1)

最佳答案

您的问题是单位的大小在 x 轴和 y 轴上不同。您需要强制它们相等。

在 matplotlib.pyplot 中,添加一行

plt.axes().set_aspect('equal')

就在你显示图表之前

plt.show()

我在 Spyder 的 IPython 控制台中得到了这个结果:

enter image description here

在pylab中,添加一行

ax.set_aspect('equal')

最后。然而,这些线段看起来仍然不垂直,那是因为它们确实不垂直。第一条红色线段的斜率为 2/3,因此第二条绿色线段的斜率应为 -3/2,但实际上斜率为 -4/3。也许把你的线路改成

lines = [[(0, 1), (4, 3)], [(-3, 4), (3, -5)]]

(我将结尾 -4 更改为 -5)以获得正确的第二个斜率。您会从第一个数字更改为第二个数字:

enter image description here

enter image description here

最后一条看起来确实垂直。

关于python - 我想在 Python 中绘制垂直向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41202444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com