有没有办法改变箭袋图中单个箭头的长度?
我使用以下方法创建了一个情节:
lines_to_draw = list of numpy 3d vectors
xs, ys, zs = list of coordinates
us, vs, ws = list of displacements
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for line in lines_to_draw:
ax.plot(line[:,0], line[:,1], line[:,2], color='green'
ax.quiver(xs, ys, zs, us, vs, ws)
它看起来像这样(轴关闭):
问题在于所有箭头看起来都是相同的。文档表明可能就是这种情况(特别是length
参数):
Axes3D.quiver(* args,** kwargs) 绘制箭头的3D场。
呼叫签名:
箭头(X,Y,Z,U,V,W,** kwargs)参数:X,Y,Z:箭头位置的x,y和z坐标
U,V,W:箭头指向的方向向量参数可以是 数组或标量,只要它们可以一起广播。 参数也可以是掩码数组。如果是任何一个元素 参数被掩盖,那么相应的箭元素就不会被掩盖 作图。
关键字参数:
长度:[1.0 | float]每个箭袋的长度,默认为1.0 ,. 单位与轴相同
arrow_length_ratio:[0.3 |漂浮] 箭头与箭头的比例,默认为0.3任意 其他关键字参数委托给LineCollection
为了澄清,矢量的大小相差最多30倍。所以应该有一个非常明显的区别。
答案 0 :(得分:4)
在下一个主要的MPL版本中,可以看到这个pull request。
Hack:您可以编辑系统上的相应MPL文件,请参阅this answer。
或者:为每个箭头发出单独的ax.quiver
命令,并使用单独的length
属性。这不是很有效,但在某些情况下,这可能会有所帮助。