ggplot中的第二行未显示正确的线型,也未显示在图例中

时间:2016-01-13 12:16:38

标签: r ggplot2

我最近有一些代码完全生成了我正在寻找的R中的ggplot。最近更新我的ggplot包后,该代码不再按我的意愿运行。新图不再显示水平线的正确线型。线条也没有出现在传奇中。正如我所说,它曾经完美地运作。

以下是使用mtcars数据集的快速,可重现的示例(我的实际数据无法共享):

    model <- lm(mtcars$wt ~ mtcars$hp)
    mtcars$pred <- predict(model, mtcars, level = 0)

    theme<-theme(axis.title.x = element_text(face="bold"),
         axis.text.x  = element_text(angle=90, face="bold", colour="black"),
         axis.title.y = element_text(face="bold", size=12),
         axis.text.y = element_text(angle=90, face="bold", colour="black"),
         plot.title = element_text(lineheight=.8, face="bold"),
         panel.grid.major = element_line(colour = 'black'),
         panel.grid.minor = element_line(colour = NA),
         panel.background = element_rect(fill = 'white'),
         strip.background = element_rect(fill = 'white'))

    plot<-ggplot(mtcars, aes(x = hp, y = pred)) +
      geom_point(aes(x=hp, y=wt, color = as.factor(am)), position=position_jitter(width=0.5,height=0.5), alpha = 0.5) +
      geom_hline(yintercept = 4.5, size = 1, aes(linetype = "y = 4.5")) +
      geom_line(aes(linetype= "Best fit"), size = 1) +
      scale_y_continuous(name= "Weight") +
      scale_color_manual('AM', values = c('orange', 'purple')) +
      scale_linetype_manual('Lines', values = c("Best fit" = 1, "y = 4.5" = 2)) +
      xlab("Hewlett Packard") +
      guides(linetype = guide_legend(keywidth = 2, keyheight = 1)) +
      theme

    plot

这是情节: enter image description here

y=4.5行应该是虚线,但正如您所看到的那样,它仍然是实心的。此外,它没有在图例中显示。我注意到的另一件事是图例标题格式已经改变。他们曾经是大胆但不再是。

有人可以帮我修改我的代码吗?也有人可以解释为什么会改变吗?

1 个答案:

答案 0 :(得分:2)

您应该将yintercept = 4.5放在aes()的{​​{1}}内,然后使用图例和核心线型。

geom_hline()