Plots.jl:循环内的绘图

Ric*_*ruz 0 plot julia plots.jl

我将 Plots.jl 与 GR 后端一起使用。

无论如何,我似乎无法策划!在 for 循环内:

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
Run Code Online (Sandbox Code Playgroud)

绘制内循环

奇怪的是,不使用循环也能实现同样的效果:

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)])
Run Code Online (Sandbox Code Playgroud)

无循环图

Mic*_*ard 5

Plot这是因为当对象返回到控制台时,绘图本身就会发生,控制台隐式调用该Base.display函数。display对象上的方法会Plot生成您看到的图。一个周期内生成的对象for不会自动返回到控制台,这意味着您看不到绘图;但您可以通过显式调用来显示它们display

using Plots
fn(m,x) = m*x
plot([0, 10], [fn(1, 0), fn(1, 10)])
for m in 2:4
     display(plot!([0, 10], [fn(m, 0), fn(m, 10)]))
end
Run Code Online (Sandbox Code Playgroud)

或者

p = plot([0, 10], [fn(1, 0), fn(1, 10)])
for m in 2:4
     plot!(p, [0, 10], [fn(m, 0), fn(m, 10)])
end
p
Run Code Online (Sandbox Code Playgroud)