Я вижу несколько сообщений об изменении ширины линии в ggplot. Ответы, в то время как информативные и эффективные для ОП, изменяют размер линии. То есть, ggplot, кажется, рассматривает линии как ряд единиц, а размер увеличивает как длину, так и ширину каждого блока, делая другие корректировки более грубыми.
Я надеюсь, что есть способ сделать линии шире (толще), не затрагивая также длину и, в свою очередь, масштаб тире.
Я заимствовал код из https://cran.r-project.org/web/packages/ggplot2/vignettes/ggplot2-specs.html, чтобы проиллюстрировать, что я имею в виду:
library(ggplot2)
#A simple plot with manually set dashes.
#The first numeral is units of dash length, the second units in the gap in hexadecimal.
lty <- c("11", "18", "1f", "81", "88", "8f", "f1", "f8", "ff")
linetypes <- data.frame(y = seq_along(lty), lty = lty)
ggplot(linetypes, aes(0, y)) +
geom_segment(aes(xend = 5, yend = y, linetype = lty)) +
scale_linetype_identity() +
geom_text(aes(label = lty), hjust = 0, nudge_y = 0.2) +
scale_x_continuous(NULL, breaks = NULL) +
scale_y_reverse(NULL, breaks = NULL)
#Altering the size changes the line width AND dash spacing.
ggplot(linetypes, aes(0, y)) +
geom_segment(aes(xend = 5, yend = y, linetype = lty),
size = 3) +
scale_linetype_identity() +
geom_text(aes(label = lty), hjust = 0, nudge_y = 0.3) +
scale_x_continuous(NULL, breaks = NULL) +
scale_y_reverse(NULL, breaks = NULL)
По сути, я хочу толстые линии с относительно тонкими и точно отрегулированными пробелами. Я думаю, что это один и тот же вопрос, заданный другим способом: есть ли способ сделать строки, которые все, скажем, "пунктирные", отличаются по ширине, но не в относительном расположении тире? Как это (что я полностью подделал):