使用Windrose库在Python中绘制风玫瑰

时间:2019-02-12 01:13:08

标签: python

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

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

是否有机会在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()

1 个答案:

答案 0 :(得分: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()