Я пытаюсь создать гистограмму с наложенными поверх нее вертикальными линиями. Одна из вертикальных линий показывает цель, остальные - процентили. Я бы хотел, чтобы строка, представляющая цель, отличалась от других строк.
У меня есть данные для строк в фрейме данных:
lines
qntls lbs heights lts lsz
1 29.00 p5=29 32.2400 dashed 0.1
2 45.25 p25=45 33.5296 dashed 0.1
3 79.00 p50=79 30.9504 dashed 0.1
4 128.00 p75=128 32.2400 dashed 0.1
5 249.25 p95=249 33.5296 dashed 0.1
6 120.00 Target=120 30.9504 solid 0.2
Затем я использую строки фрейм данных для создания объектов geom_vline и geom_label:
ggplot() +
geom_histogram(
data = h,
mapping = aes(
x = DAYSTODECISION
),
breaks = brks,
color = clr,
fill = f
) +
geom_vline(
data = lines,
mapping = aes(
xintercept = qntls,
color = lbs,
linetype = lts,
size = lsz
),
show.legend = FALSE
) +
geom_label(
data = lines,
mapping = aes(
x = qntls,
y = heights,
label = lbs,
hjust = 0 # Label starts on line and extends right
)
) +
ggtitle(title) +
labs(
x = xlab,
y = ylab
) +
theme_classic()
Я получаю такой результат:
Я хочу линия для цели должна быть solid, а все остальные линии должны быть пунктирными. По какой-то причине это перевернуто на диаграмме по сравнению с строками кадром данных. Кроме того, я ожидал бы, что целевая линия будет вдвое толще, чем другие линии, но это не так.
Любая помощь будет очень признательна!