custom scaling of a wind rose plot

9.1k Views Asked by At

I am trying to compare wind roses in python, but it is difficult because I cannot figure out how to make the same scale across all of the plots. Someone else asked the same question here Custom percentage scale used by windrose.py but it was not answered .

Example code:

from windrose import WindroseAxes
import numpy as np
import matplotlib.pyplot as plt

wind_dir = np.array([30,45,90,43,180])
wind_sd = np.arange(1,wind_dir.shape[0]+1)
bins_range = np.arange(1,6,1) # this sets the legend scale
fig,ax = plt.subplots()
ax = WindroseAxes.from_ax()

bin_range below sets scale of bars, but I need to change the y-axis frequency scale so it can be compared to other wind roses with different data.

ax.bar(wind_dir,wind_sd,normed=True,bins=bins_range) 

this set_ylim does seem to work, but the yaxis ticks do not change

ax.set_ylim(0,50)

this set_ticks line below does not do anything and I do not know why

ax.yaxis.set_ticks(np.arange(0,50,10))

ax.set_legend()
plt.show()
1

There are 1 best solutions below

4
On BEST ANSWER
from windrose import WindroseAxes
import numpy as np
import matplotlib.pyplot as plt

wind_dir = np.array([30,45,90,43,180])
wind_sd = np.arange(1,wind_dir.shape[0]+1)
bins_range = np.arange(1,6,1) # this sets the legend scale

ax = WindroseAxes.from_ax()
ax.bar(wind_dir,wind_sd,normed=True,bins=bins_range)
ax.set_yticks(np.arange(10, 60, step=10))
ax.set_yticklabels(np.arange(10, 60, step=10))
plt.show()

enter image description here