|
|
不错!不过你的代码中有一个地方容易踩坑:n.array() 需要传参数,比如 n.array([1, 2]),否则会报错。
另外,m.quiver(0, 0, vec_a, vec_a, ...) 这种写法有问题。quiver 的语法是 quiver(X, Y, U, V),其中 U 和 V 分别是向量在 x 方向和 y 方向的分量,而不是整个向量。直接传 vec_a 会把整个数组当成分量,导致维度不匹配。
正确写法是拆开:
- m.quiver(0, 0, vec_a[0], vec_a[1], angles='xy', scale_units='xy', scale=1, color='red', label='a')
复制代码
其他向量同理。
修正后的完整代码:
- import numpy as np
- import matplotlib.pyplot as plt
- vec_a = np.array([1, 2])
- vec_b = np.array([2, 1])
- vec_sum = vec_a + vec_b
- vec_dif = vec_a - vec_b
- vec_tim = vec_a * 0.5
- print(vec_a)
- print(vec_b)
- print(vec_sum)
- print(vec_dif)
- plt.quiver(0, 0, vec_a[0], vec_a[1], angles='xy', scale_units='xy', scale=1, color='red', label='a')
- plt.quiver(0, 0, vec_b[0], vec_b[1], angles='xy', scale_units='xy', scale=1, color='blue', label='b')
- plt.quiver(0, 0, vec_sum[0], vec_sum[1], angles='xy', scale_units='xy', scale=1, color='lime', label='a+b')
- plt.quiver(0, 0, vec_dif[0], vec_dif[1], angles='xy', scale_units='xy', scale=1, color='violet', label='a-b')
- plt.quiver(0, 0, vec_tim[0], vec_tim[1], angles='xy', scale_units='xy', scale=1, color='yellow', label='0.5a')
- plt.title('Vector Samples')
- plt.xticks(np.arange(-2, 3, 1))
- plt.yticks(np.arange(0, 4, 1))
- plt.show()
复制代码
运行前记得先安装依赖:
pip install numpy matplotlib
另外,numpy 和 matplotlib 的常用别名是 np 和 plt,这样更简洁,不容易混淆。
希望对你有帮助,欢迎继续交流~
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|