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]])
Другие вопросы по тегам