Незначительная путаница здесь: хочу нарисовать прогноз ветра, рисуя серию стрелок в прогнозное время t (по оси x) при скорости ветра ветер (ось y) и стрелка, указывающая направление ветер дует. Размеры стрелки должны быть заданной долей высоты участка, например. произвольно определяется как 1/15 высоты участка. Поскольку сюжет автоматически масштабируются до максимальной скорости ветра на ветер списка , отсюда следует, что:Как нарисовать стрелку в matplotlib, если одна ось содержит время?
arrowlength = np.max(wind)/15.0
Это должно дать длину стрелки в сюжетных Y единиц. Проблема заключается в том, что X-единицы, однако, несовместимы для целей рисования, потому что я использую для этого время datetime. Так Matplotlib получает свои панталоны в поворот, когда я делаю следующее (что код, который должен работать если ось х не было даты и времени):
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 t (x соответственно в цикле) передается функции Arrow.
Я полагаю, что многое в том же духе, это очень общий вопрос: как разместить строки и другие аннотации в сетке координат, которые не имеют одинаковых единиц в X и Y?
Благодаря очень Julien! Это именно то, что я искал! – Balthasar
Добро пожаловать :-) –