climind.plotters package
Submodules
climind.plotters.plot_types module
- climind.plotters.plot_types.accumulate(in_array)[source]
Calculate the accumulated mean for an array so that the nth value is the mean of the first n values in the input array.
- Parameters:
in_array
- climind.plotters.plot_types.add_data_sets(axis, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], dark: bool = False, marker=False, wmo=False, uncertainty=True, subrange=None) List[int][source]
Given a list of data sets, plot each one on the provided axis.
- Parameters:
axis (Matplotlib axis) – Set of Matplotlib axes for plotting on
all_datasets (List[Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]]) – list of data sets to be plotted on the axes
dark (bool) – Set to True to plot in the dark style (charcoal background, light coloured lines)
- Returns:
List of the zorder of the plotted data sets
- Return type:
List[int]
- climind.plotters.plot_types.add_labels(axis, dataset: TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular) str[source]
Add labels to the x and y axes
- Parameters:
axis (Matplotlib axis) – set of matplotlib axes
dataset (Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]) – Data set which will be used to specify the units on the y axis
- Returns:
Units of the y-axis
- Return type:
str
- climind.plotters.plot_types.after_plot(zords: List[int], all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], title: str, legend=True, created=True) None[source]
Add fancy stuff to the plots after all the data lines have been plotted.
- Parameters:
zords (List[int]) – List of the zorders of the data sets
ds (Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]) – Example dataset of the datasets plotted, used to determine where to plot the legend and the climatology period
title (str) – Title for the plot
- Return type:
None
- climind.plotters.plot_types.animated_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], image_filename: str, title: str, dark: bool = False, yrange: List[float] = None) str[source]
Create the standard annual plot
- Parameters:
out_dir (Path) – Directory to which the figure will be written
all_datasets (List[Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]]) – list of datasets to be plotted
image_filename (str) – filename for the figure. Must end in .png
title (str) – title for the plot
dark (bool) – set to True to plot using a dark background
- Returns:
Caption for the figure is returned
- Return type:
str
- climind.plotters.plot_types.antarctic_sea_ice_plot(out_dir: Path, all_datasets: List[TimeSeriesMonthly], image_filename: str, _) str[source]
Generate figure showing the February and September Antarctic sea ice extent anomalies for the input datasets.
- Parameters:
out_dir (Path) – Directory to which the image will be written
all_datasets (List[TimeSeriesMonthly]) – List of data sets of type
TimeSeriesMonthlyto be plottedimage_filename (str) – File name for the image, should end in .png.
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.arctic_sea_ice_plot(out_dir: Path, all_datasets: List[TimeSeriesMonthly], image_filename: str, _) str[source]
Generate figure showing the March and September sea ice extent anomalies for the input datasets.
- Parameters:
out_dir (Path) – Directory to which the image will be written
all_datasets (List[TimeSeriesMonthly]) – List of data sets of type
TimeSeriesMonthlyto be plottedimage_filename (str) – File name for the image, should end in .png.
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.cherry_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], image_filename: str, title: str) str[source]
- climind.plotters.plot_types.daily_sea_ice_plot(out_dir: Path, all_datasets: List[TimeSeriesIrregular], image_filename: str, title: str) str[source]
- climind.plotters.plot_types.dark_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], image_filename: str, title: str) str[source]
Plot the data sets in the dark style - charcoal background with light coloured lines. Tron like.
- Parameters:
out_dir (Path) – Directory to which the plot will be written
all_datasets (List[Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]]) – List of datasets to be plotted
image_filename (str) – Name for the file to be written. Should end with .png
title (str) – Title for the plot
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.dashboard_map(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str) str[source]
- climind.plotters.plot_types.dashboard_map_generic(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str, grid_type: str, region: list = None) str[source]
Plot generic style map for the dashboard. Type must be one of “mean”, “rank”, or “unc”.
- Parameters:
out_dir (Path) – Output directory to which the image will be written
all_datasets (List[GridAnnual]) – List of
GridAnnualdatasets to be plottedimage_filename (str) – Filename for output file
title (str) – Title for the plot
grid_type (str) – Indicates how the datasets in the input list should be combined, ‘mean’, ‘rank’ or ‘unc’
region (list) – four member list specifying the western, eastern, southern, and northern extents of the region to be plotted.
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.dashboard_map_pastel(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str) str[source]
Plot generic style map for the dashboard. Type must be one of “mean”, “rank”, or “unc”.
- Parameters:
out_dir (Path) – Output directory to which the image will be written
all_datasets (List[GridAnnual]) – List of
GridAnnualdatasets to be plottedimage_filename (str) – Filename for output file
title (str) – Title for the plot
grid_type (str) – Indicates how the datasets in the input list should be combined, ‘mean’, ‘rank’ or ‘unc’
region (list) – four member list specifying the western, eastern, southern, and northern extents of the region to be plotted.
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.dashboard_map_simplified(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str, grid_type: str, region: list = None) str[source]
Plot generic style map for the dashboard. Type must be one of “mean”, “rank”, or “unc”.
- Parameters:
out_dir (Path) – Output directory to which the image will be written
all_datasets (List[GridAnnual]) – List of
GridAnnualdatasets to be plottedimage_filename (str) – Filename for output file
title (str) – Title for the plot
grid_type (str) – Indicates how the datasets in the input list should be combined, ‘mean’, ‘rank’ or ‘unc’
region (list) – four member list specifying the western, eastern, southern, and northern extents of the region to be plotted.
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.dashboard_map_single(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str) str[source]
- climind.plotters.plot_types.dashboard_rank_map(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str) str[source]
- climind.plotters.plot_types.dashboard_uncertainty_map(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str) str[source]
- climind.plotters.plot_types.decade_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual], image_filename: str, title: str) str[source]
Decadal plot
- Parameters:
out_dir (Path) – Path of the directory to which the image will be written
all_datasets (List[TimeSeriesAnnual]) – List of datasets of type
TimeSeriesAnnualto be plotted.image_filename (str) – Name for the image file, should end in .png
title (str) – Title for the image, will appear at the top of the figure
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.interactive_widget(out_dir: Path, in_all_datasets: List[TimeSeriesAnnual], image_filename: str, title: str, id=None)[source]
- climind.plotters.plot_types.interactive_widget_uncertainty(out_dir: Path, in_all_datasets: List[TimeSeriesAnnual], image_filename: str, title: str, id=None)[source]
- climind.plotters.plot_types.marine_heatwave_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual], image_filename: str, _) str[source]
Marine heatwave and coldspell plot, which shows the ocean area affected by marine heatwaves and coldspells annually since the early 1980s
- Parameters:
out_dir (Path) – Path of the directory to which the image will be written
all_datasets (List[TimeSeriesAnnual]) – List of data sets of type
TimeSeriesAnnualto plotimage_filename (str) – File name for the image, should end in .png
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.monthly_plot(out_dir: Path, all_datasets: List[TimeSeriesMonthly], image_filename: str, title: str) str[source]
Create the standard monthly plot
- Parameters:
out_dir (Path) – Path of directory to which the image will be written
all_datasets (List[TimeSeriesMonthly]) – List of datasets of type
TimeSeriesMonthlyto plotimage_filename (str) – File name for the image
title (str) – Title which will appear at the top of the figure.
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.neat_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], image_filename: str, title: str, dark: bool = False, yrange: List[float] = None) str[source]
Create the standard annual plot
- Parameters:
out_dir (Path) – Directory to which the figure will be written
all_datasets (List[Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]]) – list of datasets to be plotted
image_filename (str) – filename for the figure. Must end in .png
title (str) – title for the plot
dark (bool) – set to True to plot using a dark background
- Returns:
Caption for the figure is returned
- Return type:
str
- climind.plotters.plot_types.nice_map(dataset: xarray.Dataset, image_filename: Path, title: str, var: str = 'tas_mean') None[source]
Plot a nice looking map (relatively speaking) of the last field in an xarray dataset.
- Parameters:
dataset (xarray.Dataset) – Data set to be plotted
image_filename (Path) – Name for output file
title (str) – Title for the plot
var (str) – Variabel to plot from the dataset Variabel to plot from the dataset
- Return type:
None
- climind.plotters.plot_types.plot_map_by_year_and_month(dataset: GridMonthly, year: int, month: int, image_filename: Path, title: str, var: str = 'tas_mean') None[source]
Plot map for specified year and month
- Parameters:
dataset (GridMonthly) –
GridMonthlyto be plottedyear (int) – Year to be plotted
month (int) – Month in year to be plotted
image_filename (Path) – Path to output file
title (str) – Title for the plot
var (str) – Variable to be plotted
- Return type:
None
- climind.plotters.plot_types.preindustrial_summary_plot(out_dir: Path, in_all_datasets: List[TimeSeriesAnnual], image_filename: str, title: str) str[source]
- climind.plotters.plot_types.quick_and_dirty_map(dataset: xarray.Dataset, image_filename: Path) None[source]
Quick and very rough map plotter which plots the last field in an xarray Dataset
- Parameters:
dataset (xarray.Dataset) – xarray Dataset to be plotted.
image_filename (Path) – Path for the output file
- Return type:
None
- climind.plotters.plot_types.rank_by_dataset(out_dir: Path, all_datasets: List[TimeSeriesMonthly], image_filename: str, title: str, overlay=True, n_months=36) str[source]
- climind.plotters.plot_types.records_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual], image_filename: str, title: str, dark: bool = False) str[source]
- climind.plotters.plot_types.regional_dashboard_map(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str, west=None, east=None, south=None, north=None) str[source]
- climind.plotters.plot_types.regional_dashboard_map_single(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str, west=None, east=None, south=None, north=None) str[source]
- climind.plotters.plot_types.regional_dashboard_uncertainty_map(out_dir: Path, all_datasets: List[GridAnnual], image_filename: str, title: str, west=None, east=None, south=None, north=None) str[source]
- climind.plotters.plot_types.rising_tide_multiple_plot(out_dir: Path, all_datasets: List[TimeSeriesMonthly], image_filename, title) None[source]
Rising tide plot with month on the x-axis from January to December and each year shown as a separate line showing the monthly averages that year.
- Parameters:
out_dir (Path) – Path to the directory to which the image will be written.
dataset (TimeSeriesMonthly) –
TimeSeriesMonthlyto plot.image_filename (str) – Name of the image file to be written.
- Return type:
None
- climind.plotters.plot_types.rising_tide_plot(out_dir: Path, dataset: TimeSeriesMonthly, image_filename) None[source]
Rising tide plot with month on the x-axis from January to December and each year shown as a separate line showing the monthly averages that year.
- Parameters:
out_dir (Path) – Path to the directory to which the image will be written.
dataset (TimeSeriesMonthly) –
TimeSeriesMonthlyto plot.image_filename (str) – Name of the image file to be written.
- Return type:
None
- climind.plotters.plot_types.set_xaxis(axis) Tuple[float, float, numpy.ndarray][source]
Work out the extents of the x axis and the tick values
- Parameters:
axis (Matplotlib axis) – The axis on which everything is being plotted
- Returns:
The lowest and highest points on the y axis and an array of tick values for the major ticks on the y axis.
- Return type:
Tuple[float, float, np.ndarray]
- climind.plotters.plot_types.set_yaxis(axis, dataset: TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular) Tuple[float, float, numpy.ndarray][source]
Work out the extents of the y axis and the tick values
- Parameters:
axis (Matplotlib axis) – Matplotlib axis
dataset (Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]) – Time series which contains one of the datasets being plotted
- Returns:
The lowest and highest points on the y axis and an array of tick values for the major ticks on the y axis.
- Return type:
Tuple[float, float, np.ndarray]
- climind.plotters.plot_types.show_premade_image(out_dir: Path, in_all_datasets: List[TimeSeriesAnnual], image_filename: str, title: str, original_filename: str = '', caption: str = '')[source]
- climind.plotters.plot_types.simplified_line(out_dir: Path, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], image_filename: str, title: str, dark: bool = False, yrange: List[float] = None, color_override=None) str[source]
- climind.plotters.plot_types.spark_line(out_dir: Path, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], image_filename: str, title: str, dark: bool = False, yrange: List[float] = None, color_override=None) str[source]
- climind.plotters.plot_types.trends_plot(out_dir: Path, in_all_datasets: List[TimeSeriesAnnual], image_filename: str, title: str, order: list = [], print_trends: bool = False) str[source]
Trend figure which shows the mean and range of the trends from the input data sets over four 30-year periods: 1901-1930, 1931-1960, 1961-1990 and 1991-present. This is set up to work with WMO RA and Africa Subregion timeseries.
- Parameters:
out_dir (Path) – Path of the directory to which the figure will be written
in_all_datasets (List[TimeSeriesAnnual]) – List of data sets of type
TimeSeriesAnnualto be plottedimage_filename (str) – File name for the output figure
title (str) – Title of the figure, appears at the top of the figure
order (list) – The order in which the variables will be plotted, from left to right, in each sub-block
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.wave_multiple_plot(out_dir: Path, all_datasets: List[TimeSeriesMonthly], image_filename, title) None[source]
Wave plot with month on the x-axis from January to December and each year shown as a separate line showing the cumulative average for the year-to-date for that year.
- Parameters:
out_dir (Path) – Path to the directory to which the image will be written.
dataset (List[TimeSeriesMonthly]) –
TimeSeriesMonthlyto plot.image_filename (str) – Name of the image file to be written.
- Return type:
None
- climind.plotters.plot_types.wave_plot(out_dir: Path, dataset: TimeSeriesMonthly, image_filename) None[source]
Wave plot with month on the x-axis from January to December and each year shown as a separate line showing the cumulative average for the year-to-date for that year.
- Parameters:
out_dir (Path) – Path to the directory to which the image will be written.
dataset (TimeSeriesMonthly) –
TimeSeriesMonthlyto plot.image_filename (str) – Name of the image file to be written.
- Return type:
None
- climind.plotters.plot_types.wmo_monthly_plot(out_dir: Path, all_datasets: List[TimeSeriesMonthly], image_filename: str, title: str) str[source]
Create the standard monthly plot
- Parameters:
out_dir (Path) – Path of directory to which the image will be written
all_datasets (List[TimeSeriesMonthly]) – List of datasets of type
TimeSeriesMonthlyto plotimage_filename (str) – File name for the image
title (str) – Title which will appear at the top of the figure.
- Returns:
Caption for the figure
- Return type:
str
- climind.plotters.plot_types.wmo_plot(out_dir: Path, all_datasets: List[TimeSeriesAnnual | TimeSeriesMonthly | TimeSeriesIrregular], image_filename: str, title: str, dark: bool = False, yrange: List[float] = None) str[source]
Create the standard annual plot
- Parameters:
out_dir (Path) – Directory to which the figure will be written
all_datasets (List[Union[TimeSeriesAnnual, TimeSeriesMonthly, TimeSeriesIrregular]]) – list of datasets to be plotted
image_filename (str) – filename for the figure. Must end in .png
title (str) – title for the plot
dark (bool) – set to True to plot using a dark background
- Returns:
Caption for the figure is returned
- Return type:
str
climind.plotters.plot_utils module
- climind.plotters.plot_utils.calculate_highest_year_and_values(all_datasets: List[TimeSeriesAnnual]) Tuple[List[int], List[List[float]]][source]
From the list of
TimeSeriesAnnualget the year that ranks first in each data set. Then, for each of those years get the highest and lowest data value from all of the data sets.- Parameters:
all_datasets (List[TimeSeriesAnnual]) – List of
TimeSeriesAnnualdata sets- Returns:
The first returned element is a list of years that rank first in the data sets. The second element is a list with the same length as the first. Each element in the list is two-element list holding the lowest and highest values found in any of the datasets for the corresponding year in the first list.
- Return type:
Tuple[List[int], List[List[float]]]
- climind.plotters.plot_utils.calculate_ranks(all_datasets: List[TimeSeriesAnnual], year: int, ascending: bool = False) Tuple[int, int][source]
given a set of data sets, return the min and max ranks from the data sets for a given year.
- Parameters:
all_datasets (list) – list of data sets
year (int) – year to calculate ranks for
ascending (bool) – Set to true to rank low (1st) to high (nth) rather than high (1st) to low (nth)
- Returns:
Return the minimum and maximum rank for the specified year in all data sets
- Return type:
Tuple[float, float]
- climind.plotters.plot_utils.calculate_trends(all_datasets: List[TimeSeriesAnnual], trend_start_year: int, trend_end_year: int) Tuple[float, float, float][source]
given a set of data sets, return the mean, min and max trends from the data sets calculated using OLS between the chosen years.
- Parameters:
all_datasets (List[TimeSeriesAnnual]) – list of
TimeSeriesAnnualdata setstrend_start_year (int) – first year for trend
trend_end_year (int) – last year for trend
- Returns:
returns the mean trend, minimum trend and maximum trend from the input datasets in units/decade
- Return type:
Tuple[float, float, float]
- climind.plotters.plot_utils.calculate_values(all_datasets: List[TimeSeriesAnnual], year: int) Tuple[float, float, float][source]
given a set of data sets, return the mean min and max values from the data sets for specified year.
- Parameters:
all_datasets (list) – list of
TimeSeriesAnnualdata setsyear (int) – year to calculate values for
- Returns:
Return the mean, min and max values for the chosen year from all_datasets
- Return type:
Tuple[float, float, float]
- climind.plotters.plot_utils.calculate_values_ipcc_style(all_datasets: List[TimeSeriesAnnual], year: int) Tuple[float, float, float][source]
given a set of data sets, return the mean min and max values from the data sets for specified year.
- Parameters:
all_datasets (list) – list of
TimeSeriesAnnualdata setsyear (int) – year to calculate values for
- Returns:
Return the mean, min and max values for the chosen year from all_datasets
- Return type:
Tuple[float, float, float]
- climind.plotters.plot_utils.caption_builder(all_datasets: List[TimeSeriesMonthly | TimeSeriesAnnual]) str[source]
Write a caption for the standard time series plots.
- Parameters:
all_datasets (List[Union[TimeSeriesMonthly, TimeSeriesAnnual]]) – List of datasets used in the plot
- Returns:
Caption for the collection of data sets
- Return type:
str
- climind.plotters.plot_utils.get_first_and_last_years(all_datasets: List[TimeSeriesMonthly | TimeSeriesAnnual]) Tuple[int, int][source]
Extract the first and last years from a list of data sets
- Parameters:
all_datasets (List[Union[TimeSeriesMonthly, TimeSeriesAnnual]])) – List containing the data sets for which we want the first and last years
- Returns:
First and last years
- Return type:
Tuple[int, int]
- climind.plotters.plot_utils.map_caption_builder(all_datasets: List[GridAnnual], grid_type: str) str[source]
Write a caption for the standard map plots.
- Parameters:
all_datasets (List[Union[GridAnnual]]) – List of datasets used in the plot
grid_type (str) – Type is one of ‘mean’, ‘rank’ or ‘unc’.
- Returns:
Caption for the collection of data sets
- Return type:
str
- climind.plotters.plot_utils.set_lo_hi_ticks(limits: list, spacing: float) Tuple[float, float, numpy.ndarray][source]
Given axis limits and a preferred spacing, calculate new high and low values and a set of ticks
- Parameters:
limits (list) – the lower and upper limits of the current axis
spacing (float) – The preferred tick spacing
Module contents
The plotters module contains the code for plotting datasets. The plotting code
itself is in plot_types which has functions for plotting
TimeSeries data of varying time resolutions
and also GridAnnual data. The plots all return a
string which is the caption of the plot. The plots follow a template, with the following
inputs:
out_dir
list of data sets
image filename
title for the plot
plot_utils contains a set of functions which support the plotting code including calculation of trends, ranks, setting tick marks, building captions and so on.