new*_*his 4 julia plots.jl julia-plots
我正在编写一个 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
Run Code Online (Sandbox Code Playgroud)
我尝试使用该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
Run Code Online (Sandbox Code Playgroud)
然而,这似乎也不起作用。
编辑:根据我收到的答案,我发现以下方法可以解决问题:
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
Run Code Online (Sandbox Code Playgroud)
这会在循环的每次迭代结束时生成一个新的图,这就是我想要的。
正如您所发现的,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
Run Code Online (Sandbox Code Playgroud)
那么p1应该有 10 行显示 的结果first_function,并p2有 10 行显示第二个函数的结果。
我不清楚您是否希望这两个图出现在同一个图形上,但如果您这样做,plot(p1, p2)则会创建一个带有两个子图的图形。
| 归档时间: |
|
| 查看次数: |
2430 次 |
| 最近记录: |