这里可能有一点混淆:我想通过在预测时间t(x轴)处以风速wind(y轴)绘制一系列箭头来绘制风力预报,并使箭头指向风的吹向。箭头的尺寸应为图高的给定分数,例如任意确定为图高的1/15。由于图被自动缩放到wind列表中的最大风速,因此它遵循以下规则:
arrowlength = np.max(wind) / 15.0
这应该产生在Y轴单位下的箭头长度。问题似乎是X轴单位不兼容于绘图目的,因为我正在使用它的日期时间。所以当我执行以下操作时(matplotlib会陷入困境),这就是应该工作的代码(如果x轴不是日期时间):
for x,u,v,y in zip(t, windu, windv, wind):
xcomp = arrowlength * sin(u/v)
ycomp = arrowlength * cos(u/v)
arr = Arrow(x-xcomp/2, y-ycomp/2, x+xcomp/2, y+ycomp/2, edgecolor='black')
ax.add_patch(arr)
arr.set_facecolor('b')
当然,这里的“datetime”指的是在Arrow函数中传递的变量t(或者在循环中的变量x)。
我想在同样的思路下,这是一个非常普遍的问题:如何将线条和其他注释放入一个坐标网格中,该网格的X轴和Y轴具有不同的单位?