geocat.viz.TaylorDiagram¶
- class geocat.viz.TaylorDiagram(refstd=1, fig=None, rect=111, label='REF', std_range=(0, 1.65), std_level=array([0., 0.25, 0.5, 0.75, 1., 1.25, 1.5]))¶
Taylor Diagram.
Taylor diagrams provide a visual framework for comparing a suite of variables from one or more test data sets to one or more reference data sets. Commonly, the test data sets are model experiments while the reference data set is a control experiment or some reference observations (eg, ECMWF Reanalyses). Generally, the plotted values are derived from climatological monthly, seasonal or annual means. Because the different variables (eg: precipitation, temperature) may have widely varying numerical values, the results are normalized by the reference variables. The ratio of the normalized variances indicates the relative amplitude of the model and observed variations.
- Parameters
refstd (
float
) – Optional reference standard deviationfig (
matplotlib.figure.Figure
) – Optional input figure. Default is Nonerect (
int
) – Optional subplot definitionlabel (
string
) – Optional reference label string indentifierstdRange (
tuple
) – Optional stddev axis extentstdLevel (
list
) – Optional list of tick locations for stddev axis
References
Methods
__init__
([refstd, fig, rect, label, ...])Create base Taylor Diagram.
Add bias legend to the upper left hand corner.
add_contours
([levels])Add constant centered RMS difference contours.
add_grid
(*args, **kwargs)Add a grid.
add_legend
([xloc, yloc, loc, fontsize])Add a figure legend.
add_model_name
(namearr[, x_loc, y_loc, ...])Add texts of model names.
add_model_set
(stddev, corrcoef[, fontsize, ...])Add a model set (stddev, corrcoeff) to the Taylor diagram.
add_title
(maintitle[, fontsize, y_loc])Add a main title.
add_xgrid
(arr[, color, linestyle, linewidth])Add gridlines to the X axis (correlation) specified by array arr
add_ygrid
(arr[, color, linestyle, linewidth])Add gridlines (radii) to the Y axis (standard deviation) specified by array arr
set_fontsizes_and_pad
([ticklabel_fontsize, ...])Reset ticklabel and axis label fontsizes, and axis label padding.
- add_bias_legend()¶
Add bias legend to the upper left hand corner.
- add_contours(levels=5, **kwargs)¶
Add constant centered RMS difference contours.
- Parameters
levels (
xarray.DataArray
,numpy.ndarray
,list
,int
) – Determines the number and positions of the contour lines. Optional. Default to 5
Notes
args and kwargs are propagated to matplotlib.axes.Axes.contour
- Return type
- add_grid(*args, **kwargs)¶
Add a grid.
Notes
args and kwargs are propagated to matplotlib.axes.Axes.grid
- add_legend(xloc=1.1, yloc=0.95, loc='upper right', fontsize=14, **kwargs)¶
Add a figure legend.
The coordinate system is Axes(transAxes). (x_loc=0, y_loc=0) is bottom left of the axes, and (x_loc=1, y_loc=1) is top right of the axes.
- Parameters
xloc (
float
) – x location of legend position, supplied to bbox_to_anchor(). Optional. Default to 1.1yloc (
float
) – y location of legend position, upplied to bbox_to_anchor(). Optional. Default to 0.95loc (
str
) – See Matplotlib legend documentations. Optional. Default to ‘upper right’fontsize (
float
) – Text fontsize. Optional. Default to 14
Notes
kwargs are directly propagated to the matplotlib.axes.Axes.legend command kwargs are directly propagated to the matplotlib.pyplot.legend command.
- Returns
legend – Matplotlib legend object
- Return type
- add_model_name(namearr, x_loc=0.1, y_loc=0.31, verticalalignment='top', fontsize=13, **kwargs)¶
Add texts of model names.
The coordinate system of the Axes(transAxes) is used for more intuitive positioning of the texts. (x_loc=0, y_loc=0) is bottom left of the axes, and (x_loc=1, y_loc=1) is top right of the axes.
- Parameters
namearr (
xarray.DataArray
,numpy.ndarray
,list
) – List of model namesx_loc (
float
) – x component of text position. Optional. Default to 0.1y_loc (
float
) – y component of text position. Optional. Default to 0.31verticalalignment (
str
) – Vertical alignment. Options: {‘center’, ‘top’, ‘bottom’, ‘baseline’, ‘center_baseline’}. Optional. Default to ‘top’fontsize (
float
) – Text fontsize. Optional. Default to 13
Notes
kwargs are directly propagated to the matplotlib.axes.Axes.text command
- Return type
None
- add_model_set(stddev, corrcoef, fontsize=14, xytext=(-5, 7), annotate_on=True, model_outlier_on=False, percent_bias_on=False, bias_array=None, *args, **kwargs)¶
Add a model set (stddev, corrcoeff) to the Taylor diagram. NCL- style model markers and labels are achieved through Matplotlib markers and annotations. xytext argument can be used to adjust the positioning of the label relative to the markers if annotate_on argument is set to True.
- Parameters
stddev (
xarray.DataArray
,numpy.ndarray
,list
, orfloat
) – An array of vertical coordinates of the data points that denote the standard deviationcorrcoef (
xarray.DataArray
,numpy.ndarray
,list
, orfloat
) – An array of horizontal coordinates of the data points that denote correlation Input should have the same size as stddevfontsize (
float
) – Fonsize of marker labels. This argument is suplied to matplotlib.axes.Axes.annotate command. Optional. Default value 14.xytext (
tuple
(float
,float
)) – The position (x, y) to place the marker label at. The coordinate system is set to pixels. This argument is supplied to matplotlib.axes.Axes.annotate command. Optional. Default set to (-5,7)annotate_on (
bool
) – Determine whether model labels are added. Optional. Default to True.model_outlier_on (:class:bool) – If True, models with negative correlations and standard deviations > TaylorDiagram.smax(default to 1.65) are plotted as text at the bottom of the figure; if False, all models are plotted according to stddev and corrcoef Default to False. Optional.
percent_bias_on (:class:bool) – If True, model marker and marker size is plotted based on bias_array Default to False. Optional.
bias_array (
xarray.DataArray
,numpy.ndarray
,list
, orfloat
) – If this is given, it is used to determine individual marker size and marker style internally. Input should have the same size as stddev and corrcoef Default to None.
Notes
args and kwargs are directly propagated to the matplotlib.axes.Axes.plot command.
- Returns
modelTexts (array of
matplotlib.text.Annotation
) – A list of text objects representing model labelsmodelset (array of
matplotlib.collections.PathCollection
) – A list of sets of markers representing sets of models
- add_title(maintitle, fontsize=18, y_loc=None, **kwargs)¶
Add a main title.
- Parameters
Notes
kwargs are directly propagated to the matplotlib.axes.Axes.set_title command.
- Return type
None
- add_xgrid(arr, color='lightgray', linestyle=(0, (9, 5)), linewidth=0.5, **kwargs)¶
Add gridlines to the X axis (correlation) specified by array arr
- Parameters
arr (
xarray.DataArray
,numpy.ndarray
,list
,float
) – An array of horizontal coordinates of the data points that denote correlationcolor (
str
) – Color of the gridline. Optional. Default to “lightgray”linestyle ({'-', '--', '-.', ':', '', (offset, on-off-seq), ...}) – See matplotlib Linestyle examples. Optional. Default to (0, (9,5))
linewidth (
float
) – Set the line width in points. Optional. Default to 0.5
Notes
kwargs are directly propagated to the matplotlib.axes.Axes.vlines command.
- Return type
None
- add_ygrid(arr, color='lightgray', linestyle=(0, (9, 5)), linewidth=1, **kwargs)¶
Add gridlines (radii) to the Y axis (standard deviation) specified by array arr
- Parameters
arr (
xarray.DataArray
,numpy.ndarray
,list
,float
) – An array of vertical coordinates of the data points that denote standard deviationcolor (
str
) – Color of the gridline. Optional. Default to “lightgray”linestyle ({'-', '--', '-.', ':', '', (offset, on-off-seq), ...}) – See matplotlib Linestyle examples. Optional. Default to (0, (9,5))
linewidth (
float
) – Set the line width in points. Optional. Default to 1
Notes
kwargs are directly propagated to the matplotlib.axes.Axes.plot command.
- Return type
None
- set_fontsizes_and_pad(ticklabel_fontsize=14, axislabel_fontsize=16, axislabel_pad=8)¶
Reset ticklabel and axis label fontsizes, and axis label padding.