Я пытаюсь создать гистограмму с наложенными поверх нее вертикальными линиями. Одна из вертикальных линий показывает цель, остальные — процентили. Я хотел бы, чтобы строка, представляющая цель, отличалась от других строк.
У меня есть данные для строк в кадре данных:
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
Затем я использую фрейм данных lines для создания объектов 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()
Я получаю этот результат:
Я хочу, чтобы линия цели была сплошной, а все остальные линии — пунктирными. По какой-то причине это перевернуто на диаграмме по сравнению с фреймом данных lines. Кроме того, я ожидаю, что целевая линия будет в два раза толще других линий, но это не так.
Любая помощь приветствуется!