代码之家  ›  专栏  ›  技术社区  ›  Bada

我怎样才能在我的ggplot中添加一个传奇?我在用风水线和风水带

  •  0
  • Bada  · 技术社区  · 6 年前

    下午好,

    我使用以下代码生成绘图:

    ggplot() +
     geom_line(data = disDataHeadItems, aes(x=disDataHeadItems$x, 
     y=disDataHeadItems$Freq)) + 
     geom_line(data = disDataLongTail, aes(x=disDataLongTail$x, 
     y=disDataLongTail$Freq)) +
     xlab("Item id") +
     ylab("# of occurrences") +
     scale_x_continuous(breaks=seq(5, 75, 10), expand = c(0, 0)) + 
     scale_y_continuous(expand = c(0, 0)) +
     geom_ribbon(aes(ymin=0, ymax=disDataHeadItems$Freq, 
     x=disDataHeadItems$x), fill="#CC6666") +
     geom_ribbon(aes(ymin=0, ymax=disDataLongTail$Freq, 
     x=disDataLongTail$x), fill="#66CC99") +
     geom_vline(xintercept=19, linetype="dotted")
    

    这就产生了下面的情节,我对此很满意:)

    enter image description here 现在,我想添加一个图例,它只指示红色部分是头项,绿色部分是数据的长尾巴。当我查找它时,我只找到指示如何改变传说的答案。但我的却没有出现。欢迎任何帮助:)

    1 回复  |  直到 6 年前
        1
  •  1
  •   SeGa    6 年前

    将注释放在一起,并添加一些随机数据帧,结果是:

    library(ggplot2)
    disDataHeadItems <- data.frame(
      x = runif(100,1,100),
      Freq = runif(100,5,10)
    )
    disDataLongTail <- data.frame(
      x = runif(100,1,100),
      Freq = runif(100,5,10)
    )
    
    ggplot() +
      geom_line(data = disDataHeadItems, aes(x=x, 
                                             y=Freq)) + 
      geom_line(data = disDataLongTail, aes(x=x, 
                                            y=Freq)) +
      xlab("Item id") +
      ylab("# of occurrences") +
      scale_x_continuous(breaks=seq(5, 75, 10), expand = c(0, 0)) + 
      scale_y_continuous(expand = c(0, 0)) +
      geom_ribbon(aes(ymin=0, ymax=disDataHeadItems$Freq, 
                      x=disDataHeadItems$x, fill="#CC6666")) +
      geom_ribbon(aes(ymin=0, ymax=disDataLongTail$Freq, 
                      x=disDataLongTail$x, fill="#66CC99")) +
      geom_vline(xintercept=19, linetype="dotted")