2

可以在同一个绘图显示中绘制多个系列,也可以在一个显示中绘制多个子图。但我希望将几个完全不同的图(不一定是地图的系列或图表)精确显示在一个框架中。我怎样才能做到这一点?在 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?我不是用一条绘图线编写此特定示例的输出的捷径或技巧,请注意我的问题是一般性的,例如 p2 可以是曲线或其他东西,或者我可能有一个for生成绘图的流程在每个步骤中,然后我想将所有这些形状放在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))

通过运行上面的代码,我分别看到了以下图表。 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

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

4

3 回答 3

2

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

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

如果您一次创建多个图,您可以命名它们并在以下位置引用它们plot!

p1 = plot(x, y)
plot!(p1, x, z)
于 2020-08-06T22:46:46.273 回答
0

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

plot(p1, p2)
于 2019-08-28T09:45:04.300 回答
0

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

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)
于 2019-09-03T09:24:38.410 回答