I am using Plots.jl with the GR backend.
For whatever, I cannot seem to be able to plot! inside a for-loop:
using Plots
fn(m,x) = m*x
plot([0, 10], [fn(1, 0), fn(1, 10)])
for m in 2:4
plot!([0, 10], [fn(m, 0), fn(m, 10)])
end
Oddly enough, the same thing without using a cycle works:
using Plots
fn(m,x) = m*x
plot([0, 10], [fn(1, 0), fn(1, 10)])
plot!([0, 10], [fn(2, 0), fn(2, 10)])
plot!([0, 10], [fn(3, 0), fn(3, 10)])
plot!([0, 10], [fn(4, 0), fn(4, 10)])
That is because the plotting itself happens when the
Plot
object is returned to the console, which implicitly calls theBase.display
function. Thedisplay
method on aPlot
object generates the plot that you see. Objects generated within afor
cycle aren't automatically returned to the console, which means you can't see the plot; but you can display them by explicitly callingdisplay
:or