Julia 将同一绘图打印为子绘图的两倍

Julia 将同一绘图打印为子绘图的两倍,julia,plots.jl,julia-plots,Julia,Plots.jl,Julia Plots,我想使用Plots.jl创建一个包含几个子图的图。下面是一个例子: using Plots gr() p = plot(1:10, 1:10) q = plot(1:10, 10:-1:1) plot(p, q) 这完全符合预期!但假设我想用同样的情节两次,就像这样: 嗯,只有一块地。也许我需要先复制绘图: plot(p, copy(p)) 但这会产生一个错误: 错误:MethodError:没有方法匹配 复制(::Plots.Plot{Plots.GRBackend}) 最接近的

我想使用
Plots.jl
创建一个包含几个子图的图。下面是一个例子:

using Plots
gr()

p = plot(1:10, 1:10)
q = plot(1:10, 10:-1:1) 

plot(p, q)

这完全符合预期!但假设我想用同样的情节两次,就像这样:

嗯,只有一块地。也许我需要先复制绘图:

plot(p, copy(p))
但这会产生一个错误:

错误:MethodError:没有方法匹配 复制(::Plots.Plot{Plots.GRBackend})
最接近的候选人是:
在Expr.jl:36处复制(::Expr) 复制(::Core.CodeInfo)到expr.jl:64
在位集中复制(::位集)。jl:46

Stacktrace:
REPL[216]处的顶级作用域:1


如何将同一子地块打印两次?

您的想法是正确的,但请尝试使用deepcopy()而不是copy()。deepcopy()通常适用于没有特定copy()方法的任意对象。

谢谢,比尔-这非常有效。你能解释一下为什么它不先复制就不打印两次吗?我不知道,但我怀疑这是因为子地块是如何存储的——Plots使用dict存储它的大部分子结构。如果存储在Dict中,您可能无法在Dict中放置相同的键,因此这种情况是禁止的。维护绘图的人可能知道。看起来这可能是一个bug:
plot(p, copy(p))