hline/vline с подзаголовками в Джулии

#julia #ijulia-notebook #julia-plots

Вопрос:

Я пытаюсь добавить горизонтальную линию к подзаголовку, и из этого обсуждения: 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]) , по умолчанию он будет верхним. Есть ли способ сделать только нижний?

Ответ №1:

Вероятно, лучше всего строить сюжеты отдельно (как упоминалось в 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]])
 

Ответ №2:

Хитрость в том, чтобы отслеживать дескрипторы сюжета.

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

возвращает дескриптор графика (в частности, Plots.Plot{Plots.GRBackend} объект) p с двумя элементами p[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])
 

введите описание изображения здесь

Комментарии:

1. Спасибо за ваш ответ! Полезно знать, что подзаголовки отслеживаются в виде массива с дескриптором,