hline/vline с подсюжетами в Юлии
Я пытаюсь добавить горизонтальную линию к подзаголовку, и из этого обсуждения: 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])
, по умолчанию используется верхний. Есть ли способ сделать только нижнюю?
2 ответа
Хитрость заключается в том, чтобы отслеживать дескрипторы сюжета.
p = plot([x, x], [y1, y2], layout = (2, 1))
возвращает дескриптор сюжета (в частности,
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])
Вероятно, лучше всего строить подзаголовки отдельно (как упоминалось в Slack от isentropic):
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]])