将行添加到现有ggplot中并在图例中提供它们

时间:2019-09-28 12:33:49

标签: r ggplot2

我正在尝试为已添加到现有ggplot中的行添加密钥。

设置:

test.mat <- data.frame(matrix(nrow=32, ncol =3))
test.mat[,1] = rep(1:16,2)
test.mat[1:16,2] = as.character(rep("Cohort Alpha"),16)
test.mat[17:32,2] = as.character(rep("Factor Alpha"), 16)
test.mat[,3] = rnorm(32,0,1)
colnames(test.mat) = c("Window", "type", "value")

ggplot(test.mat, aes(x=Window, y=value, size = type)) +
  geom_line(aes(colour = type, linetype = type)) +
  scale_colour_manual("type", values = c("black", "steelblue")) +
  scale_linetype_manual("type", values = c("solid", "solid")) +
  scale_size_manual("type", values = c(0.8, 1.4), guide = "none") +
  xlab("Quarter after alpha assessment") + ylab("t-statistics") + ggtitle("Panel Regression t-statistics") +  theme_classic() + 
  theme(
    text = element_text(family = "Times New Roman"),
    plot.title = element_text(color = "black", size = 12, hjust = 0.5),
    axis.title = element_text(size = 12),
    legend.title = element_blank()) +
    geom_hline(yintercept = 1.282 , color = "dark green") +
    geom_hline(yintercept = 1.645 , color = "dark grey") +
    geom_hline(yintercept = 2.326 , color = "grey")

我希望将深绿色线标记为“ *”,我希望将深灰色线标记为“ **”,并且我希望将灰线标记为“ ***”。我希望这些标签显示在图例中。

1 个答案:

答案 0 :(得分:1)

您可以在linetype的{​​{1}}中使用geom_hline,以便将这些行包含在图例中。我更改了aes,以使其反映新图例行的颜色。这就是您的想法吗?

scale_linetype_manual

plot with legend including geom_hline