rasterio.plot module

Implementations of various common operations.

Including show() for displaying an array or with matplotlib. Most can handle a numpy array or rasterio.Band(). Primarily supports $ rio insp.

rasterio.plot.adjust_band(band, kind=None)

Adjust a band to be between 0 and 1.

  • band (array, shape (height, width)) – A band of a raster object.

  • kind (str) – An unused option. For now, there is only one option (‘linear’).


band_normed – An adjusted version of the input band.

Return type

array, shape (height, width)


import matplotlib.pyplot raise import error if matplotlib is not installed

rasterio.plot.plotting_extent(source, transform=None)
Returns an extent in the format needed

for matplotlib.pyplot.imshow() (left, right, bottom, top) instead of rasterio’s bounds (left, bottom, right, top)

  • source (numpy.ndarray or dataset object opened in 'r' mode) – If array, data in the order rows, columns and optionally bands. If array is band order (bands in the first dimension), use arr[0]

  • transform (Affine, required if source is array) – Defines the affine transform if source is an array


left, right, bottom, top

Return type

tuple of float


Returns the source array reshaped into the order expected by image processing and visualization software (matplotlib, scikit-image, etc) by swapping the axes order from (bands, rows, columns) to (rows, columns, bands)


arr (array-like of shape (bands, rows, columns)) – image to reshape


Returns the array in a raster order by swapping the axes order from (rows, columns, bands) to (bands, rows, columns)


arr (array-like in the image form of (rows, columns, bands)) – image to reshape

rasterio.plot.show(source, with_bounds=True, contour=False, contour_label_kws=None, ax=None, title=None, transform=None, adjust=False, **kwargs)

Display a raster or raster band using matplotlib.

  • source (array or dataset object opened in 'r' mode or Band or tuple(dataset, bidx)) – If Band or tuple (dataset, bidx), display the selected band. If raster dataset display the rgb image as defined in the colorinterp metadata, or default to first band.

  • with_bounds (bool (opt)) – Whether to change the image extent to the spatial bounds of the image, rather than pixel coordinates. Only works when source is (raster dataset, bidx) or raster dataset.

  • contour (bool (opt)) – Whether to plot the raster data as contours

  • contour_label_kws (dictionary (opt)) – Keyword arguments for labeling the contours, empty dictionary for no labels.

  • ax (matplotlib.axes.Axes, optional) – Axes to plot on, otherwise uses current axes.

  • title (str, optional) – Title for the figure.

  • transform (Affine, optional) – Defines the affine transform if source is an array

  • adjust (bool) – If the plotted data is an RGB image, adjust the values of each band so that they fall between 0 and 1 before plotting. If True, values will be adjusted by the min / max of each band. If False, no adjustment will be applied.

  • **kwargs (key, value pairings optional) – These will be passed to the matplotlib.pyplot.imshow() or matplotlib.pyplot.contour() contour method depending on contour argument.


ax – Axes with plot.

Return type


rasterio.plot.show_hist(source, bins=10, masked=True, title='Histogram', ax=None, label=None, **kwargs)

Easily display a histogram with matplotlib.

  • source (array or dataset object opened in 'r' mode or Band or tuple(dataset, bidx)) – Input data to display. The first three arrays in multi-dimensional arrays are plotted as red, green, and blue.

  • bins (int, optional) – Compute histogram across N bins.

  • masked (bool, optional) – When working with a rasterio.Band() object, specifies if the data should be masked on read.

  • title (str, optional) – Title for the figure.

  • ax (matplotlib.axes.Axes, optional) – The raster will be added to this axes if passed.

  • label (matplotlib labels (opt)) – If passed, matplotlib will use this label list. Otherwise, a default label list will be automatically created

  • **kwargs (optional keyword arguments) – These will be passed to the matplotlib.axes.Axes.hist() method.