|
|
问题主要出在vec_a和vec_b没有给具体数值,n.array()会报错;另外quiver的用法不太对,前两个参数是起点坐标,后两个参数是向量的U、V分量,不能直接把整个向量传进去。
可以先改成这样:
- 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.figure(figsize=(5, 5))
- 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.legend()
- plt.show()
复制代码
记得先调用plt.figure再画图,不然画面尺寸设置不生效。这样就能正确显示向量了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|