如何在Julia中叠加等高线图(使用PyPlot后端的Plots)

时间:2018-06-18 10:31:28

标签: matplotlib julia plots.jl

我试图使用带有PyPlot后端的Plots在Julia中叠加两个等值线图。是否可能,如果可能,怎么样?

MWE看起来像这样:

using Plots
pyplot()
a = rand(50,50)
b = rand(50,50)
p1 = contour(a,seriescolor=:blues)
p2 = contour(b,seriescolor=:reds)
plot(p1,p2,layout=1)

(此代码生成ERROR: When doing layout, n (1) != n_override (2)。我确实理解错误,但我不知道如何绕过它。)

1 个答案:

答案 0 :(得分:0)

解决方案

使用contour!

using Plots
pyplot()
a = rand(50,50)
b = rand(50,50)
contour(a,seriescolor=:blues)
contour!(b,seriescolor=:reds)

第一个等高线绘制a。第二个轮廓!在绘制a的同一画布上绘制b。

为什么!

!是朱莉娅(以及其他一些语言)惯用的惯例。 Julia并没有给出任何特殊的意义,但开发人员却这样做:惯例是在方法改变现有状态时将!附加到方法声明,例如:修改其中一个参数。在这种情况下,contour!用于通过将其与另一个图重叠来修改现有图。