imod.visualize.cross_section(da, colors, levels, layers=False, aquitards=None, kwargs_pcolormesh={}, kwargs_colorbar={}, kwargs_aquitards=None, return_cmap_norm=False, fig=None, ax=None)[source]#

Wraps matplotlib.pcolormesh to draw cross-sections, drawing cell boundaries accurately. Aquitards can be plotted on top of the cross-section, by providing a DataArray with the aquitard location for aquitards.

  • da (xr.DataArray) –

    Two dimensional DataArray containing data of the cross section. One dimension must be “layer”, and the second dimension will be used as the x-axis for the cross-section.

    Coordinates “top” and “bottom” must be present, and must have at least the “layer” dimension (voxels) or both the “layer” and x-coordinate dimension.

    Use or cross_section_linestring() to obtain the required DataArray.

  • colors (list of str, or list of RGB tuples) –

    Matplotlib acceptable list of colors. Length N. Accepts both tuples of (R, G, B) and hexidecimal (e.g. “#7ec0ee”).

    Looking for good colormaps? Try: Choose a colormap, and use the HEX JS array.

  • levels (listlike of floats or integers) – Boundaries between the legend colors/classes. Length: N - 1.

  • layers (boolean, optional) – Whether to draw lines separating the layers.

  • aquitards (xr.DataArray, optional) – Datarray containing data on location of aquitard layers.

  • kwargs_pcolormesh (dict) – Other optional keyword arguments for matplotlib.pcolormesh.

  • kwargs_colorbar (dict) – If optional key plot_colorbar is set to False, no colorbar is drawn. Defaults to True. Optional keyword argument whiten_triangles whitens respective colorbar triangle if data is not larger/smaller than legend_levels-range. Defaults to True. Other arguments are forwarded to fig.colorbar()

  • kwargs_aquitards (dict) – These arguments are forwarded to matplotlib.fill_between to draw the aquitards.

  • return_cmap_norm (boolean, optional) – Return the cmap and norm of the plot, default False

  • fig (matplotlib Figure instance, optional) – Figure to write plot to. If not supplied, a Figure instance is created

  • ax (matplotlib Axes instance, optional) – Axes to write plot to. If not supplied, an Axes instance is created


  • fig (matplotlib.figure)

  • ax (

  • if return_cmap_norm == True

  • cmap (matplotlib.colors.ListedColormap)

  • norm (matplotlib.colors.BoundaryNorm)


Basic cross section:

>>> imod.visualize.cross_section(da, colors, levels)

Aquitards can be styled in multiple ways. For a transparent grey overlay (the default):

>>> kwargs_aquitards = {"alpha": 0.5, "facecolor": "grey"}
>>> imod.visualize.cross_section(da, colors, levels, aquitards=aquitards, kwargs_aquitards)

For a hatched overlay:

>>> kwargs_aquitards = {"hatch": "/", "edgecolor": "k"}
>>> imod.visualize.cross_section(da, colors, levels, aquitards=aquitards, kwargs_aquitards)