This function operates in a similar fashion to wave_points - the main
difference is that the output values are plotted. Consequently, the set of targets is required
to overlay the region of interest onto the plot.
To ensure that the wave numbers provided in the legend match, one should provide waves
as a list of data.frames with the earliest wave at the start of the list.
The parameters which_wave and upper_scale control the level of `zoom' on
each of the lower-triangular and upper-triangular plots, respectively. For the lower
plots, which_wave determines which of the provided waves is to be used to determine
the output ranges to plot with respect to: generally, higher which_wave values
result in a more zoomed-in plot. For the upper plots, upper_scale determines the
plot window via a multiple of the target bounds: higher values result in a more zoomed-out
plot. If not provided, these default to which_wave=0 (or 1 if no wave 0 is given)
and upper_scale = 1. If the value provided to which_wave does not correspond
to a provided wave (or one explicitly not included in wave_numbers), it defaults to
the closest available wave to the value of which_wave.
If ems is provided, it should follow the same structure as waves: at the very
least, it should contain all emulators trained over the course of the waves. The emulator
predictions for a target are made by the emulator for that target whose ranges are the
smallest such that contain the point.