Julia - 在同一个图中显示多个图(不是子图)

Julia - Displaying several plots in the same plot (not subplot)

可以在同一个绘图显示中绘制多个系列,也可以在一个显示中绘制多个子图。但我想要几个可以完全不同的东西(不一定是地图的系列或图表)的地块完全显示在一个框架中。我怎样才能做到这一点?在 Maple 中,您可以为每个地块分配名称,例如 P1:=...:P2:= ...: 然后使用 plots:-display(P1,P2,...); 就可以了。但我想在 Julia 中这样做。假设我有以下情节作为示例;

using Plots
pyplot()
x=[1,2,2,1,1]
y=[1,1,2,2,1]
plot(x,y)

p1=plot(x,y,fill=(0, :orange))

x2=[2,3,3,2,2]
y2=[2,2,3,3,2]
p2=plot(x2,y2,fill=(0, :yellow))

现在如何将 P1 和 P2 放在一个 plot 中?我没有使用一条绘图线来编写这个特定示例的输出的捷径或技巧,请注意我的问题是一般性的,例如 p2 可以是曲线或其他东西,或者我可能有 for flow 在每个步骤中生成一个图,然后我想在 for 循环结束时将所有这些形状放在一个图显示中。


尝试使用 plot!() 以任意顺序添加到绘图的简单示例代码。

using Plots
pyplot()
x=[1,2,2,1,1]
y=[1,1,2,2,1]
p1=plot(x,y,fill=(0, :orange))

x2=[2,3,3,2,2]
y2=[2,2,3,3,2]
p2=plot!(x2,y2,fill=(0, :orange))

p3=plot(x,y)

display(p2)

p5=plot!([1,2,2,1,1],[2,2,3,3,2],fill=(0, :green))

通过运行上面的代码分别看到如下图。

但我希望看到的是在带有两个橙色矩形的图中添加了绿色矩形的图。

好吧,如果你这样做,从技术上讲,你将拥有的是次要情节。这就是它的意思。 语法是

plot(p1, p2)

抱歉,我不知道如何在另一个地块上绘制整个地块(与系列相反)。关于地块的顺序,您可以根据需要创建任意数量的地块,而无需显示它们然后在任何你想要的地方显示它们,例如:

using Plots
pyplot()

# Here we create independent plots, without displaying them:
x=[1,2,2,1,1]
y=[1,1,2,2,1]
p1=plot(x,y,fill=(0, :orange));
x2=[2,3,3,2,2]
y2=[2,2,3,3,2]
p2=plot(x2,y2,fill=(0, :orange));
p3=plot(x,y);
p5=plot([1,2,2,1,1],[2,2,3,3,2],fill=(0, :green));

# Here we display the plots (in the order we want):
println("P2:")
display(p2)
println("P3:")
display(p3)
println("P5:")
display(p5)
println("P1:")
display(p1)

在同一组轴内绘制多个系列的方法是使用 plot! 函数。注意感叹号!它是函数名称的一部分。 plot 每次调用都会创建一个新图,而 plot! 会将系列添加到当前图。示例:

plot(x, y)
plot!(x, z)

如果您同时创建多个地块,您可以命名它们并在 plot! 中引用它们:

p1 = plot(x, y)
plot!(p1, x, z)