kedro.contrib.io.matplotlib.MatplotlibWriter

class kedro.contrib.io.matplotlib.MatplotlibWriter(filepath, fs_args=None, credentials=None, save_args=None)[source]

Bases: kedro.io.core.AbstractDataSet

MatplotlibWriter saves matplotlib objects to image file(s) in an underlying filesystem (e.g. local, S3, GCS).

Example:

import matplotlib.pyplot as plt
from kedro.contrib.io.matplotlib import MatplotlibWriter

# Saving single plot
plt.plot([1, 2, 3], [4, 5, 6])
single_plot_writer = MatplotlibWriter(
    filepath="matplot_lib_single_plot.png"
)
single_plot_writer.save(plt)
plt.close()

# Saving dictionary of plots
plots_dict = dict()
for colour in ["blue", "green", "red"]:
    plots_dict[colour] = plt.figure()
    plt.plot([1, 2, 3], [4, 5, 6], color=colour)
    plt.close()
dict_plot_writer = MatplotlibWriter(
    filepath="matplotlib_dict"
)
dict_plot_writer.save(plots_dict)

# Saving list of plots
plots_list = []
for index in range(5):
    plots_list.append(plt.figure())
    plt.plot([1,2,3],[4,5,6])
    plt.close()
list_plot_writer = MatplotlibWriter(
    filepath="matplotlib_list"
)
list_plot_writer.save(plots_list)

Methods

MatplotlibWriter.__init__(filepath[, …]) Creates a new instance of MatplotlibWriter.
MatplotlibWriter.exists() Checks whether a data set’s output already exists by calling the provided _exists() method.
MatplotlibWriter.from_config(name, config[, …]) Create a data set instance using the configuration provided.
MatplotlibWriter.get_last_load_version() Versioned datasets should override this property to return last loaded version
MatplotlibWriter.get_last_save_version() Versioned datasets should override this property to return last saved version.
MatplotlibWriter.invalidate_cache() Invalidate underlying filesystem caches.
MatplotlibWriter.load() Loads data by delegation to the provided load method.
MatplotlibWriter.release() Release any cached data.
MatplotlibWriter.save(data) Saves data by delegation to the provided save method.
__init__(filepath, fs_args=None, credentials=None, save_args=None)[source]

Creates a new instance of MatplotlibWriter.

Parameters:
  • filepath (str) – Key path to a matplot object file(s) prefixed with a protocol like s3://. If prefix is not provided, file protocol (local filesystem) will be used. The prefix should be any protocol supported by fsspec.
  • fs_args (Optional[Dict[str, Any]]) – Extra arguments to pass into underlying filesystem class. E.g. for GCSFileSystem class: {“project”: “my-project”, …}
  • credentials (Optional[Dict[str, Any]]) – Credentials required to get access to the underlying filesystem. E.g. for S3FileSystem it should look like: {‘client_kwargs’: {‘aws_access_key_id’: ‘<id>’, ‘aws_secret_access_key’: ‘<key>’}}
  • save_args (Optional[Dict[str, Any]]) – Save args passed to plt.savefig. See https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html
Return type:

None

exists()

Checks whether a data set’s output already exists by calling the provided _exists() method.

Return type:bool
Returns:Flag indicating whether the output already exists.
Raises:DataSetError – when underlying exists method raises error.
classmethod from_config(name, config, load_version=None, save_version=None)

Create a data set instance using the configuration provided.

Parameters:
  • name (str) – Data set name.
  • config (Dict[str, Any]) – Data set config dictionary.
  • load_version (Optional[str]) – Version string to be used for load operation if the data set is versioned. Has no effect on the data set if versioning was not enabled.
  • save_version (Optional[str]) – Version string to be used for save operation if the data set is versioned. Has no effect on the data set if versioning was not enabled.
Return type:

AbstractDataSet

Returns:

An instance of an AbstractDataSet subclass.

Raises:

DataSetError – When the function fails to create the data set from its config.

get_last_load_version()

Versioned datasets should override this property to return last loaded version

Return type:Optional[str]
get_last_save_version()

Versioned datasets should override this property to return last saved version.

Return type:Optional[str]
invalidate_cache()[source]

Invalidate underlying filesystem caches.

Return type:None
load()

Loads data by delegation to the provided load method.

Return type:Any
Returns:Data returned by the provided load method.
Raises:DataSetError – When underlying load method raises error.
release()

Release any cached data.

Raises:DataSetError – when underlying exists method raises error.
Return type:None
save(data)

Saves data by delegation to the provided save method.

Parameters:data (Any) – the value to be saved by provided save method.
Raises:DataSetError – when underlying save method raises error.
Return type:None