三行代码  ›  专栏  ›  技术社区  ›  Sue

如何创建相同的双离散y轴

  •  0
  • Sue  · 技术社区  · 1 月前

    我有一个示例数据框,如下所示:

    Month<-c("Jan","Feb","Mar","Apr")
    Value<-c(12,6,13,3)
    
    xy<-data.frame(Month,Value)
    ggplot(xy, aes( x=Month,y=Value))+geom_bar(stat="identity",width=0.6)+coord_flip()
    

    如何添加与第一个y轴相同的第二个y轴“月”?

    非常感谢。

    2 回复  |  直到 1 月前
        1
  •  2
  •   Park    1 月前

    你的 Month scale_x_discrete 没有次轴选项,我们需要创建另一个虚拟变量 mm 这是连续的,然后重新编码变量。

    xy %>%
      arrange(Month) %>%
      mutate(mm = 1:4) %>%
      ggplot(aes(x=mm,y=Value))+geom_bar(stat="identity",width=0.6) +
       scale_x_continuous(breaks = 1:4,
                          labels = c("Apr", "Feb", "Jan", "Mar"),
                          sec.axis = dup_axis()) +
      coord_flip()
    

    enter image description here

        2
  •  1
  •   norie    1 月前

    与Park的答案略有不同,但总体思路相同。

    library(ggplot2)
    
    Month <- c("Jan", "Feb", "Mar", "Apr")
    Value <- c(12, 6, 13, 3)
    
    xy <- data.frame(Month, Value)
    
    ggplot(xy, aes(x = length(Month):1, y = Value)) + geom_bar(stat = "identity", width =
                                                                 0.6) +
      scale_x_continuous(
        breaks = length(Month):1,
        labels = Month,
        sec.axis = dup_axis(),
        name = "Months"
      ) +
      coord_flip()
    
    

    Identical duplicate y-axes