我正在编写一个Julia程序,该程序迭代运行另一个函数,并将给我两组结果。我想画出这些结果,现在我正在做的是分别画出每个for
循环的结果,这给了我大约20张下面例子的图:说这样的话:
for i in 1:10
x1,y1 = first_function(a,b,c)
plot(x1,y1)
end
for j in 1:10
x2,y2 = second_function(a,b,c)
plot(x2,y2)
end
我试着使用plot!()
命令,但这会在同一个绘图上提供所有20个绘图,这是我不想要的。我想做的是将两个函数的结果绘制在同一张图上,用于每次迭代。例如,我想要10个图,每个迭代一个,其中每个图都有first_function()
和second_function
的结果。我尝试了以下方法:
for j in 1:10
x1,y1 = first_function(a,b,c)
x2,y2 = second_function(a,b,c)
plot!(x1,y1)
plot!(x2,y2)
end
然而,这似乎也不起作用。
编辑:根据我收到的一个答案,我能够想出以下方法:
for i in 1:10
x1,y1 = first_function(a,b,c)
x2,y2 = second_function(a,b,c)
plot(x1,y1)
plot!(x2,y2)
end
这会在循环的每次迭代结束时生成一个新的图,这正是我想要的。
正如您所发现的,plot()
会创建一个新的绘图,而plot!()
会绘制到当前活动的绘图上。
你所需要做的就是明确你想在什么时候做什么,如果你使用plot!()
,也要明确你想绘制到哪个绘图对象
p1 = plot()
p2 = plot()
for i in 1:10
plot!(p1, first_function(a, b, c)...)
plot!(p2, second_function(a, b, c)...)
end
则p1
应当具有示出first_function
的结果的10行以及具有第二函数的结果的p2
行。
我不清楚你是否希望这两个图都出现在同一个图上,但如果你这样做了,plot(p1, p2)
将创建一个有两个子图的图。