我正在尝试在PyPlot中创建平行四边形。我不愿绘制平行四边形-首先我使用以下代码放入矢量箭头:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
plt.axis([-5,5,-5,5])
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
plt.grid()
plt.arrow(0,0, 3,1, head_width=0.2, color='r', length_includes_head=True, label='u')
plt.arrow(0,0, 1,3, head_width=0.2, color='r', length_includes_head=True, label='v')
plt.arrow(0,0, 4,4, head_width=0.2, color='r', length_includes_head=True, label='u+v')
plt.legend()
这将返回以下错误:
No handles with labels found to put in legend.
[我不确定为什么,因为根据plt.arrow()
的文档,label
是可以接受的kwarg,而plt.legend()
表面上应该在读取它。图的其余部分很好。它只是缺少传说。
为了完全控制哪些艺术家具有传奇条目,可以传递可迭代的传奇艺术家,然后分别传递可迭代的传奇标签。 Reference
示例:
arr1 = plt.arrow(0,0, 3,1, head_width=0.2, color='r', length_includes_head=True)
arr2 = plt.arrow(0,0, 1,3, head_width=0.2, color='g', length_includes_head=True)
arr3 = plt.arrow(0,0, 4,4, head_width=0.2, color='b', length_includes_head=True)
plt.xlim(0,5)
plt.ylim(0,5)
plt.legend([arr1, arr2, arr3], ['u','v','u+v'])