removing a layer legend in ggplot

后端 未结 1 595
灰色年华
灰色年华 2021-01-05 00:12

Another ggplot legend question!

I have a dataset of the form

test <- data.frame(
  cond = factor(rep(c(\"A\", \"B\"), each=200)), 
  value = c(rno         


        
相关标签:
1条回答
  • 2021-01-05 00:48

    Depending on the version of ggplot2 you are using you get this problem. Using ggplot2 vs 0.9.0 on R2.14.1 I get this graph:

    enter image description here

    which does not include the legend for the vline. In this version of ggplot2 you can tweak the occurence of the legend using show_guide:

    ggplot(test, aes(value, fill=cond)) + 
      geom_density(alpha=0.5) + 
      labs(x='Energy', y='Density', fill='Group') + 
      opts(
        panel.background=theme_blank(), 
        panel.grid.major=theme_blank(), 
        panel.grid.minor=theme_blank(), 
        panel.border=theme_blank(), 
        axis.line=theme_segment()
      ) + 
      geom_vline(data=test.cdf, aes(xintercept=value.mean, colour=cond), 
        linetype='dashed', size=1, show_guide = TRUE)
    

    enter image description here

    which reproduces your problem. Default, show_guide = FALSE. In older versions, you can add legend = FALSE to geom_vline in order to omit the legend. Adding legend = FALSE still works still works in the current version, but it throws a warning:

    Warning message:
    In get(x, envir = this, inherits = inh)(this, ...) :
      "legend" argument in geom_XXX and stat_XXX is deprecated. Use show_guide = TRUE or show_guide = FALSE for display or suppress the guide display.
    

    I would recommend upgrading ggplot2.

    0 讨论(0)
提交回复
热议问题