hline/vline 在 Julia 中有子图
hline/vline with subplots in Julia
我正在尝试向子图添加一条水平线,从这个讨论中:https://discourse.julialang.org/t/vline-with-subplots/25479/2,我有以下内容
x = [1,2,3]
y1 = 2x
y2 = x.^2
plot([x, x], [y1, y2], layout = (2, 1))
hline!([4 4])
生成图。
现在我要做的是在底部绘制水平线,而不是在顶部绘制水平线。如果我只指定 hline!([4])
,它默认为最上面的。有没有办法只做最下面的一个?
诀窍是跟踪情节句柄。
p = plot([x, x], [y1, y2], layout = (2, 1))
returns 一个图句柄(具体来说,一个 Plots.Plot{Plots.GRBackend}
对象)p
有两个元素,p[1]
(第一个子图)和 p[2]
(第二个子图)。如果只将 hline 添加到底部图,则可以这样写:
x = [1,2,3]
y1 = 2x
y2 = x.^2
p = plot([x, x], [y1, y2], layout = (2, 1))
hline!(p[2], [4])
单独绘制子图可能是最佳做法(如 isentropic 在 Slack 上提到的):
x = [1,2,3]
y1 = 2x
y2 = x.^2
p1 = plot(x, y1)
p2 = plot(x, y2)
hline!(p2, [4])
plot(p1, p2, layout = (2, 1))
但是如果你想一次全部搞定,你可以使用
hline!([[NaN], [4]])
我正在尝试向子图添加一条水平线,从这个讨论中:https://discourse.julialang.org/t/vline-with-subplots/25479/2,我有以下内容
x = [1,2,3]
y1 = 2x
y2 = x.^2
plot([x, x], [y1, y2], layout = (2, 1))
hline!([4 4])
生成图。
现在我要做的是在底部绘制水平线,而不是在顶部绘制水平线。如果我只指定 hline!([4])
,它默认为最上面的。有没有办法只做最下面的一个?
诀窍是跟踪情节句柄。
p = plot([x, x], [y1, y2], layout = (2, 1))
returns 一个图句柄(具体来说,一个 Plots.Plot{Plots.GRBackend}
对象)p
有两个元素,p[1]
(第一个子图)和 p[2]
(第二个子图)。如果只将 hline 添加到底部图,则可以这样写:
x = [1,2,3]
y1 = 2x
y2 = x.^2
p = plot([x, x], [y1, y2], layout = (2, 1))
hline!(p[2], [4])
单独绘制子图可能是最佳做法(如 isentropic 在 Slack 上提到的):
x = [1,2,3]
y1 = 2x
y2 = x.^2
p1 = plot(x, y1)
p2 = plot(x, y2)
hline!(p2, [4])
plot(p1, p2, layout = (2, 1))
但是如果你想一次全部搞定,你可以使用
hline!([[NaN], [4]])