Plots.jl:里面的循环图

时间:2017-09-10 13:19:41

标签: plot julia plots.jl

我正在使用带有GR后端的Plots.jl。

无论如何,我似乎无法策划!在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

plot inside loop

奇怪的是,没有使用循环的同样的事情是有效的:

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)])

plot without loop

1 个答案:

答案 0 :(得分:2)

这是因为当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

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