[英]Line plot with superimposed arrows in matplotlib
我正在尝试绘制全天的温度和风速与时间的关系。 我希望做的是将温度绘制为法线图。 然后在该小时的每一小时都有一个重叠的箭头指向当时的风向(北向0度,东向顺时针90度,等等。)
您可以尝试使用matplotlib的注释 。 通常,与Arrow
和FancyArrow
相比,它不那么令人头疼:
import numpy as np
import matplotlib.pyplot as plt
time = np.linspace(0,23,24)
temp = np.array([10]*24) + np.random.random(24)*2
wind = np.linspace(0, 270, 24)
fig, ax = plt.subplots()
ax.plot(time, temp, 'o-')
arrow_len = 1.5
for i, theta in enumerate(np.radians(wind)):
dx = arrow_len * np.cos(theta)
dy = arrow_len * np.sin(theta) * ax.get_data_ratio()
x, y = time[i], temp[i]
ax.annotate("",
xy=(x+dx, y+dy), xycoords='data',
xytext=(x, y), textcoords='data',
arrowprops=dict(arrowstyle="-|>")
)
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.