Open multiple figure windows using Plots

I would like to use scripts, in the REPL, to display multiple figures from a function. Using PyPlot and plt.figure allows it, but Plots does not seem to have a way of doing so.

My MWE:

using Plots
import PyPlot
plt = PyPlot

function test()
    x = 1:10
    y = rand(10)

    p = plot(title="Sample Plot, does not appear")
    plot!(p, x, y, label="Random Data")
    display(p) # Very weird that this does nothing!

    p2 = plot(title="Another Sample Plot", reuse=false)
    plot!(p2, x.^2, sqrt.(y), label="More Random Data")
    display(p2) # Only this one appears

    nothing
end

function test_plt()
    x = 1:10
    y = rand(10)

    plt.figure()
    plt.plot(x, y, label="Random Data")
    plt.title("Sample Plot with PyPlot")
    plt.legend()

    plt.figure()
    plt.plot(x.^2, sqrt.(y), label="More Random Data")
    plt.title("Another Sample Plot with PyPlot")
    plt.legend()

    nothing
end

test()
test_plt()

This is a backend issue with Plots when using the GRBackend. Depending on OS and perhaps versions, this might work (didn’t for me)

ENV["GKSwstype"] = "100"  # forces GR to use a GUI window
using Plots
gr()  # explicitly set backend

Even setting reuse=false didn’t work for me.

It might work wit the PyPlot backend.

For me this issue is one of the reasons not to use Plots.jl.

I use ControlPlots.jl or GLMakie.jl .

1 Like

Please, check this post.

1 Like

The only workaround in GR is to enter Command+F to freeze the window.