Plotting different process variables on already existing Matplotlib figures / axes#

Section author: Feliks Kiszkurno (Helmholtz Centre for Environmental Research GmbH - UFZ)

For this example we load a 2D meshseries from within the meshplotlib examples. This tutorial covers using meshplotlib to plot meshseries data using Matplotlib objects for Figure and / or Axis. This is useful if different plotting functions from Meshplotlib are to be used on different subplots within the same figure.

Import Python packages, change some settings and load example data set

import matplotlib.pyplot as plt

from ogstools.meshlib import difference
from ogstools.meshplotlib import examples, plot, setup
from ogstools.propertylib import presets

plt.rcParams.update({"font.size": 32})

setup.reset()
setup.length.output_unit = "km"

meshseries = examples.meshseries_THM_2D

It is possible to plot various process parameter in different subplots of the same figure. But each mesh series and parameter pair need a separate call of plot function:

setup.combined_colorbar = False
fig, ax = plt.subplots(2, 1, figsize=(15, 15))
plot(meshseries.read(0), presets.temperature, fig=fig, ax=ax[0])
plot(meshseries.read(1), presets.displacement, fig=fig, ax=ax[1])
fig.suptitle("Compare temperature and displacement")
fig.tight_layout()
Compare temperature and displacement

The same way difference between process variables at different time steps can be plotted. Color bars can be drawn automatically, if user provides both Figure and Axes objects:

fig, ax = plt.subplots(3, 1, figsize=(20, 30))
plot(meshseries.read(0), presets.temperature, fig=fig, ax=ax[0])
ax[0].set_title(r"$T(\mathrm{t}_{0})$")
plot(meshseries.read(1), presets.temperature, fig=fig, ax=ax[1])
ax[1].set_title(r"$T(\mathrm{t}_{end})$")
diff_mesh = difference(
    meshseries.read(1), meshseries.read(0), presets.temperature
)
plot(diff_mesh, presets.temperature, fig=fig, ax=ax[2])
ax[2].set_title(r"$T(\mathrm{t}_{end})$-$T(\mathrm{t}_{0})$")
fig.suptitle("Plot two time steps and their difference - with colorbars")
fig.tight_layout()
Plot two time steps and their difference - with colorbars, $T(\mathrm{t}_{0})$, $T(\mathrm{t}_{end})$, $T(\mathrm{t}_{end})$-$T(\mathrm{t}_{0})$

Total running time of the script: (0 minutes 1.625 seconds)