2

我正在尝试向子图添加一条水平线,从这个讨论中: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]),它默认为顶部的。有没有办法只做底部的?

4

2 回答 2

2

诀窍是跟踪情节句柄。

p = plot([x, x], [y1, y2], layout = (2, 1))

返回具有两个元素(第一个子图)和(第二个子图)的图句柄(特别是一个Plots.Plot{Plots.GRBackend}对象)。要将 hline 仅添加到底部图,您可以编写:pp[1]p[2]

x = [1,2,3]
y1 = 2x
y2 = x.^2
p = plot([x, x], [y1, y2], layout = (2, 1))
hline!(p[2], [4])

在此处输入图像描述

于 2021-06-29T01:09:57.173 回答
2

单独绘制子图可能是最佳做法(如等熵在 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]])
于 2021-06-29T06:10:39.847 回答