The way I’ve done this in the past was to inspect the underlying result from `vpc_plot`

.

Here’s a MWE:

```
using Pumas
using PumasUtilities
using PharmaDatasets
pkdata = dataset("iv_sd_3")
population = read_pumas(pkdata; covariates=[:dosegrp])
model = @model begin
@param begin
tvcl ∈ RealDomain(; lower = 0.001) # typical clearance
tvvc ∈ RealDomain(; lower = 0.001) # typical central volume of distribution
Ω ∈ PDiagDomain(2) # between-subject variability
σ ∈ RealDomain(; lower = 0.001) # residual variability
end
@random begin
η ~ MvNormal(Ω)
end
@covariates dosegrp
@pre begin
CL = tvcl * exp(η[1])
Vc = tvvc * exp(η[2])
end
@dynamics Central1
@derived begin
cp = @. 1000 * Central / Vc
dv ~ @. Normal(cp, cp * σ)
end
end
params = (tvcl = 1.0, tvvc = 10.0, Ω = Diagonal([0.09, 0.09]), σ = 0.3)
fit_results = fit(model, population, params, FOCE())
fit_vpc = vpc(
fit_results; # Multi-Threaded
ensemblealg = EnsembleThreads(),
stratify_by = [:dosegrp],
)
f = vpc_plot(fit_vpc)
```

This produces:

Now if you go to the Julia extension and check for the contents of `f`

, like in this image:

You’ll see that `f`

has 4 `Makie.Axis`

inside the `f.figure.content`

vector.

Let’s dive into one of them:

Hey, there’s a `title`

thing with a `val`

which is the same as our title from the first axis in your plot…

Let’s try to change this:

```
f.figure.content[1].title.val = "Change title 1"
```

However, this does not change our underlying figure `f`

.

We need to “notify” Makie that things have changed.

We do this with the `notify`

function on whatever we are changing:

```
notify(f.figure.content[1].title)
```

And voila, call `f`

again to render the image and you’ll see:

It works.

Now we can change anything inside the `Makie.Axis`

objects, just don’t forget to call `notify`

on it.

I hope this helps you, Krina!