2

我有风数据,包括风速和风向。

但是,我的风向是逆时针定义的。意思是,我的数据的 45 度实际上是 NW。

有没有机会在 Python 中使用 Windrose 来改变这一点?

我有以下代码来绘制 Windrose:

from windrose import WindroseAxes
import matplotlib.pyplot as plt

theta = [0, 60, 120, 180, 240, 300]
speed = [10, 0, 10, 40, 50, 40]

ax = WindroseAxes.from_ax()
ax.bar(theta, speed)
plt.show()
4

1 回答 1

0

你的风玫瑰的方向由theta列表决定。如果 90° 不在您希望的一侧,您可以将所有 theta 角转换为相反的角度,从而创建原始图像的镜像。

假设您的原始代码如下。

from windrose import WindroseAxes                                                                                                                                                                                                                                                                                                                                                                                                                                                            
import matplotlib.pyplot as plt                                                                                                                                                                                                                                                                                                                                                                                                                                                              

theta = [0, 90]                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
speed = [10, 10]                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

ax = WindroseAxes.from_ax()                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
ax.bar(theta, speed)                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
plt.show()

这会向您显示一个在东边带有条形的图表,而您希望它在西边(或相反)。

如果取相反的角度,则交换图形。以下代码将满足您的目的。

from windrose import WindroseAxes
import matplotlib.pyplot as plt

theta = [0, 90]
theta = [360 - x for x in theta] # Take the opposite angle
speed = [10, 10]

ax = WindroseAxes.from_ax()
ax.bar(theta, speed)
plt.show()
于 2019-02-12T08:32:04.310 回答