API
Windrose for matplotlib
- class windrose.WindAxes(*args, **kwargs)
- static from_ax(ax=None, fig=None, figsize=(8, 8), *args, **kwargs)
- pdf(var, bins=None, Nx=100, bar_color='b', plot_color='g', Nbins=10, *args, **kwargs)
Draw probability density function and return Weibull distribution parameters
- set(*, adjustable=<UNSET>, agg_filter=<UNSET>, alpha=<UNSET>, anchor=<UNSET>, animated=<UNSET>, aspect=<UNSET>, autoscale_on=<UNSET>, autoscalex_on=<UNSET>, autoscaley_on=<UNSET>, axes_locator=<UNSET>, axisbelow=<UNSET>, box_aspect=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, facecolor=<UNSET>, forward_navigation_events=<UNSET>, frame_on=<UNSET>, gid=<UNSET>, in_layout=<UNSET>, label=<UNSET>, mouseover=<UNSET>, navigate=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, position=<UNSET>, prop_cycle=<UNSET>, rasterization_zorder=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, subplotspec=<UNSET>, title=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, xbound=<UNSET>, xlabel=<UNSET>, xlim=<UNSET>, xmargin=<UNSET>, xscale=<UNSET>, xticklabels=<UNSET>, xticks=<UNSET>, ybound=<UNSET>, ylabel=<UNSET>, ylim=<UNSET>, ymargin=<UNSET>, yscale=<UNSET>, yticklabels=<UNSET>, yticks=<UNSET>, zorder=<UNSET>)
Set multiple properties at once.
Supported properties are
- Properties:
adjustable: {‘box’, ‘datalim’} agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image alpha: scalar or None anchor: (float, float) or {‘C’, ‘SW’, ‘S’, ‘SE’, ‘E’, ‘NE’, …} animated: bool aspect: {‘auto’, ‘equal’} or float autoscale_on: bool autoscalex_on: unknown autoscaley_on: unknown axes_locator: Callable[[Axes, Renderer], Bbox] axisbelow: bool or ‘line’ box_aspect: float or None clip_box: ~matplotlib.transforms.BboxBase or None clip_on: bool clip_path: Patch or (Path, Transform) or None facecolor or fc: :mpltype:`color` figure: ~matplotlib.figure.Figure forward_navigation_events: bool or “auto” frame_on: bool gid: str in_layout: bool label: object mouseover: bool navigate: bool navigate_mode: unknown path_effects: list of .AbstractPathEffect picker: None or bool or float or callable position: [left, bottom, width, height] or ~matplotlib.transforms.Bbox prop_cycle: ~cycler.Cycler rasterization_zorder: float or None rasterized: bool sketch_params: (scale: float, length: float, randomness: float) snap: bool or None subplotspec: unknown title: str transform: ~matplotlib.transforms.Transform url: str visible: bool xbound: (lower: float, upper: float) xlabel: str xlim: (left: float, right: float) xmargin: float greater than -0.5 xscale: unknown xticklabels: unknown xticks: unknown ybound: (lower: float, upper: float) ylabel: str ylim: (bottom: float, top: float) ymargin: float greater than -0.5 yscale: unknown yticklabels: unknown yticks: unknown zorder: float
- class windrose.WindAxesFactory
Factory class to create WindroseAxes or WindAxes
- static create(typ, ax=None, *args, **kwargs)
Create
Mandatory:
- Parameters:
typ (string, 'windroseaxes' or 'windaxes') –
- Type of axes to create
windroseaxes : a WindroseAxes axe
windaxe : a WindAxes axe
ax (matplotlib.Axes, optional) – A matplotlib axe
- class windrose.WindroseAxes(*args, **kwargs)
Create a windrose axes
- bar(direction, var, **kwargs)
Plot a windrose in bar mode. For each var bins and for each sector, a colored bar will be draw on the axes.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds.
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
sectoroffset (float, optional) – the offset for the sectors between [-180/nsector, 180/nsector]. By default, the offset is zero, and the first sector is [-360/nsector/2, 360/nsector/2] or [-11.25, 11.25] for nsector=16. If offset is non-zero, the first sector will be [-360/nsector + offset, 360/nsector + offset] and etc.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6 between min(var) and max(var).
blowto (bool, optional.) – if True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional.) – if cmap == None and colors == None, a default Colormap is used.edgecolor (string, optional) – The string color each edge box will be plotted. Default : no edgecolor
opening (float, optional) – between 0.0 and 1.0, to control the space between each sector (1.0 for no space)
calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
- box(direction, var, **kwargs)
Plot a windrose in proportional box mode. For each var bins and for each sector, a colored box will be draw on the axes.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
sectoroffset (float, optional) – the offset for the sectors. By default, the offsect is zero, and the first sector is [-360/nsector, 360/nsector] or [-11.25, 11.25] for nsector=16. If offset is non-zero, the first sector will be [-360/nsector + offset, 360/nsector + offset] and etc.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6 between min(var) and max(var).
blowto (bool, optional) – If True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional) – if cmap == None and colors == None, a default Colormap is used.edgecolor (string, optional) – The string color each edge bar will be plotted. Default : no edgecolor
calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
- clear()
Clear the current axes
- contour(direction, var, **kwargs)
Plot a windrose in linear mode. For each var bins, a line will be draw on the axes, a segment between each sector (center to center). Each line can be formatted (color, width, …) like with standard plot pylab command.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds.
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6, then bins=linspace(min(var), max(var), 6)
blowto (bool, optional) – If True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional) – if cmap == None and colors == None, a default Colormap is used.calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
kwargs (others) – Any supported argument of
matplotlib.pyplot.plot
- contourf(direction, var, **kwargs)
Plot a windrose in filled mode. For each var bins, a line will be draw on the axes, a segment between each sector (center to center). Each line can be formatted (color, width, …) like with standard plot pylab command.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6, then bins=linspace(min(var), max(var), 6)
blowto (bool, optional) – If True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional) – if cmap == None and colors == None, a default Colormap is used.calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
kwargs (others) – Any supported argument of
matplotlib.pyplot.plot
- static from_ax(ax=None, fig=None, rmax=None, figsize=(8, 8), rect=None, *args, **kwargs)
Return a WindroseAxes object for the figure fig.
- legend(loc='lower left', decimal_places=1, units=None, **kwargs)
Sets the legend location and her properties.
- Parameters:
loc (int, string or pair of floats, default: 'lower left') – see
matplotlib.pyplot.legend
.decimal_places (int, default 1) – The decimal places of the formatted legend
units (str, default None)
isaxes (boolean, default True) – whether this is an axes legend
prop (FontProperties(size='smaller')) – the font property
borderpad (float) – the fractional whitespace inside the legend border
shadow (boolean) – if True, draw a shadow behind legend
labelspacing (float, 0.005) – the vertical space between the legend entries
handlelenght (float, 0.05) – the length of the legend lines
handletextsep (float, 0.02) – the space between the legend line and legend text
borderaxespad (float, 0.02) – the border between the axes and legend edge
kwarg – Every other kwarg argument supported by
matplotlib.pyplot.legend
- name = 'windrose'
- set(*, adjustable=<UNSET>, agg_filter=<UNSET>, alpha=<UNSET>, anchor=<UNSET>, animated=<UNSET>, aspect=<UNSET>, autoscale_on=<UNSET>, autoscalex_on=<UNSET>, autoscaley_on=<UNSET>, axes_locator=<UNSET>, axisbelow=<UNSET>, box_aspect=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, facecolor=<UNSET>, forward_navigation_events=<UNSET>, frame_on=<UNSET>, gid=<UNSET>, in_layout=<UNSET>, label=<UNSET>, legend=<UNSET>, mouseover=<UNSET>, navigate=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, position=<UNSET>, prop_cycle=<UNSET>, radii_angle=<UNSET>, rasterization_zorder=<UNSET>, rasterized=<UNSET>, rgrids=<UNSET>, rlabel_position=<UNSET>, rlim=<UNSET>, rmax=<UNSET>, rmin=<UNSET>, rorigin=<UNSET>, rscale=<UNSET>, rticks=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, subplotspec=<UNSET>, theta_direction=<UNSET>, theta_offset=<UNSET>, theta_zero_location=<UNSET>, thetagrids=<UNSET>, thetalim=<UNSET>, thetamax=<UNSET>, thetamin=<UNSET>, title=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, xbound=<UNSET>, xlabel=<UNSET>, xlim=<UNSET>, xmargin=<UNSET>, xscale=<UNSET>, xticklabels=<UNSET>, xticks=<UNSET>, ybound=<UNSET>, ylabel=<UNSET>, ylim=<UNSET>, ymargin=<UNSET>, yscale=<UNSET>, yticklabels=<UNSET>, yticks=<UNSET>, zorder=<UNSET>)
Set multiple properties at once.
Supported properties are
- Properties:
adjustable: {‘box’, ‘datalim’} agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image alpha: scalar or None anchor: (float, float) or {‘C’, ‘SW’, ‘S’, ‘SE’, ‘E’, ‘NE’, …} animated: bool aspect: {‘auto’, ‘equal’} or float autoscale_on: bool autoscalex_on: unknown autoscaley_on: unknown axes_locator: Callable[[Axes, Renderer], Bbox] axisbelow: bool or ‘line’ box_aspect: float or None clip_box: ~matplotlib.transforms.BboxBase or None clip_on: bool clip_path: Patch or (Path, Transform) or None facecolor or fc: :mpltype:`color` figure: ~matplotlib.figure.Figure forward_navigation_events: bool or “auto” frame_on: bool gid: str in_layout: bool label: object legend: unknown mouseover: bool navigate: bool navigate_mode: unknown path_effects: list of .AbstractPathEffect picker: None or bool or float or callable position: [left, bottom, width, height] or ~matplotlib.transforms.Bbox prop_cycle: ~cycler.Cycler radii_angle: unknown rasterization_zorder: float or None rasterized: bool rgrids: tuple with floats rlabel_position: number rlim: unknown rmax: float rmin: float rorigin: float rscale: unknown rticks: unknown sketch_params: (scale: float, length: float, randomness: float) snap: bool or None subplotspec: unknown theta_direction: unknown theta_offset: unknown theta_zero_location: str thetagrids: tuple with floats, degrees thetalim: unknown thetamax: unknown thetamin: unknown title: str transform: ~matplotlib.transforms.Transform url: str visible: bool xbound: (lower: float, upper: float) xlabel: str xlim: (left: float, right: float) xmargin: float greater than -0.5 xscale: unknown xticklabels: unknown xticks: unknown ybound: (lower: float, upper: float) ylabel: str ylim: (bottom: float, top: float) ymargin: float greater than -0.5 yscale: unknown yticklabels: unknown yticks: unknown zorder: float
- set_legend(**pyplot_arguments)
- set_radii_angle(**kwargs)
Set the radii labels angle
- windrose.clean(direction, var, index=False)
Remove nan and var=0 values in the two arrays if a var (wind speed) is nan or equal to 0, this data is removed from var array but also from dir array if a direction is nan, data is also removed from both array
- windrose.clean_df(df, var='speed', direction='direction')
Remove nan and var=0 values in the DataFrame if a var (wind speed) is nan or equal to 0, this row is removed from DataFrame if a direction is nan, this row is also removed from DataFrame
- windrose.histogram(direction, var, bins, nsector, total, sectoroffset=0, normed=False, blowto=False)
Returns an array where, for each sector of wind (centred on the north), we have the number of time the wind comes with a particular var (speed, pollutant concentration, …).
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds
bins (list) – list of var category against we’re going to compute the table
nsector (integer) – number of sectors
normed (boolean, default False) – The resulting table is normed in percent or not.
blowto (boolean, default False) – Normally a windrose is computed with directions as wind blows from. If true, the table will be reversed (useful for pollutantrose)
- windrose.plot_windrose(direction_or_df, var=None, kind='contour', var_name='speed', direction_name='direction', by=None, rmax=None, ax=None, **kwargs)
Plot windrose from a pandas DataFrame or a numpy array.
- windrose.plot_windrose_df(df, kind='contour', var_name='speed', direction_name='direction', by=None, rmax=None, ax=None, **kwargs)
Plot windrose from a pandas DataFrame.
- windrose.plot_windrose_np(direction, var, kind='contour', clean_flag=True, by=None, rmax=None, ax=None, **kwargs)
Plot windrose from a numpy array.
- windrose.wrbar(direction, var, ax=None, rmax=None, figsize=(8, 8), **kwargs)
Plot a windrose in bar mode. For each var bins and for each sector, a colored bar will be draw on the axes.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds.
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
sectoroffset (float, optional) – the offset for the sectors between [-180/nsector, 180/nsector]. By default, the offset is zero, and the first sector is [-360/nsector/2, 360/nsector/2] or [-11.25, 11.25] for nsector=16. If offset is non-zero, the first sector will be [-360/nsector + offset, 360/nsector + offset] and etc.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6 between min(var) and max(var).
blowto (bool, optional.) – if True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional.) – if cmap == None and colors == None, a default Colormap is used.edgecolor (string, optional) – The string color each edge box will be plotted. Default : no edgecolor
opening (float, optional) – between 0.0 and 1.0, to control the space between each sector (1.0 for no space)
calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
- windrose.wrbox(direction, var, ax=None, rmax=None, figsize=(8, 8), **kwargs)
Plot a windrose in proportional box mode. For each var bins and for each sector, a colored box will be draw on the axes.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
sectoroffset (float, optional) – the offset for the sectors. By default, the offsect is zero, and the first sector is [-360/nsector, 360/nsector] or [-11.25, 11.25] for nsector=16. If offset is non-zero, the first sector will be [-360/nsector + offset, 360/nsector + offset] and etc.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6 between min(var) and max(var).
blowto (bool, optional) – If True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional) – if cmap == None and colors == None, a default Colormap is used.edgecolor (string, optional) – The string color each edge bar will be plotted. Default : no edgecolor
calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
- windrose.wrcontour(direction, var, ax=None, rmax=None, figsize=(8, 8), **kwargs)
Plot a windrose in linear mode. For each var bins, a line will be draw on the axes, a segment between each sector (center to center). Each line can be formatted (color, width, …) like with standard plot pylab command.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds.
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6, then bins=linspace(min(var), max(var), 6)
blowto (bool, optional) – If True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional) – if cmap == None and colors == None, a default Colormap is used.calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
kwargs (others) – Any supported argument of
matplotlib.pyplot.plot
- windrose.wrcontourf(direction, var, ax=None, rmax=None, figsize=(8, 8), **kwargs)
Plot a windrose in filled mode. For each var bins, a line will be draw on the axes, a segment between each sector (center to center). Each line can be formatted (color, width, …) like with standard plot pylab command.
- Parameters:
direction (1D array) – directions the wind blows from, North centred
var (1D array) – values of the variable to compute. Typically the wind speeds
nsector (integer, optional) – number of sectors used to compute the windrose table. If not set, nsector=16, then each sector will be 360/16=22.5°, and the resulting computed table will be aligned with the cardinals points.
bins (1D array or integer, optional) – number of bins, or a sequence of bins variable. If not set, bins=6, then bins=linspace(min(var), max(var), 6)
blowto (bool, optional) – If True, the windrose will be pi rotated, to show where the wind blow to (useful for pollutant rose).
colors (string or tuple, optional) – one string color (‘k’ or ‘black’), in this case all bins will be plotted in this color; a tuple of matplotlib color args (string, float, rgb, etc), different levels will be plotted in different colors in the order specified.
cmap (a cm Colormap instance from
matplotlib.cm
, optional) – if cmap == None and colors == None, a default Colormap is used.calm_limit (float, optional) – Calm limit for the var parameter. If not None, a centered red circle will be draw for representing the calms occurrences and all data below this value will be removed from the computation.
kwargs (others) – Any supported argument of
matplotlib.pyplot.plot
- windrose.wrpdf(var, bins=None, Nx=100, bar_color='b', plot_color='g', Nbins=10, ax=None, rmax=None, figsize=(8, 8), *args, **kwargs)
Draw probability density function and return Weibull distribution parameters
- windrose.wrscatter(direction, var, ax=None, rmax=None, figsize=(8, 8), *args, **kwargs)
Draw scatter plot