使用部分透明度(alpha)时,如何防止R在图例中显示虚线?

时间:2019-12-05 21:53:28

标签: r ggplot2

我正在绘制一些数据是近似的图,所以我想用虚线显示它。我还想使某些线条部分透明。问题是,我似乎无法使图例不在常规线的顶部显示虚线。我只希望它显示常规行。这是一个示例:

data <- data.frame(types = rep(c("Hi", "Lo", "Left", "Right"), each = 20), year = rep(2000:2019, 4), 
                   values = c(0:19 * 1, 0:19 * 1.33, 0:19 * 1.5, 0:19 * 2))

data$v2[data$year <= 2010 & data$types == "Lo"] <- data$values[data$year <= 2010 & data$types == "Lo"]
data$values[data$year < 2010 & data$types == "Lo"] <- NA



ggplot(data = data) +
  theme(legend.position = "top") +
  geom_line(aes(x = year, y = values, color = types, alpha = types), size = 2) +
  geom_line(aes(x = year, y = v2, color = types, alpha = types), linetype = "dotted", size = 2) + 
  scale_alpha_manual(values = c(1, .5, .5, .5))

如果从RStudio运行它,它将不会在图例中为Left,Lo或Right显示任何内容。如果创建PDF,则可以看到一条透明的线条,其顶部带有点。我只希望它显示透明线而没有点。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

show.legend = FALSE有效。谢谢。