如何在 ggplot 的图例中重复符号以获得更好的符号视图?

How do I repeat a symbol in the legend of a ggplot to gain a better view of the symbol?

作为#tidytuesday 的一部分,我刚刚开始了 du Bois 挑战,并且正在接受挑战 1:格鲁吉亚白人和有色人种的比较增长

原始图表有带 4 个破折号的“白色”符号 enter image description here,但是当我复制该图时,图例只有 1 个破折号和一点点第二个破折号。

如何重复图例中的符号以获得 4 个破折号?我不需要增加大小,只是重复

尝试在 theme 中设置 legend.key.width:

library(ggplot2)

ggplot(df1, aes(x, y, linetype = f)) +
  geom_line() +
  scale_linetype_manual(values = c("solid", "dashed")) +
  theme(legend.key.width = unit(1.5, "strwidth", "- - - - "))

测试数据

set.seed(2021)
df1 <- data.frame(
 x = c(1:10, 1:10),
 y = c(cumsum(rnorm(10)), cumsum(rnorm(10))),
 f = rep(c("A", "B"), each = 10)
)

类似于@RuiBarradas 的方法,但使用 guide_legend 设置 keywidth 你可以像这样获得你想要的结果:

library(ggplot2)

ggplot(economics, aes(date)) +
  geom_line(aes(y = psavert, linetype = "psavert")) +
  geom_line(aes(y = uempmed, linetype = "uempmed")) +
  scale_linetype_manual(values = c(psavert = 1, uempmed = 5)) +
  guides(linetype = guide_legend(keywidth = unit(50, "pt"))) +
  theme(legend.position = "bottom")