【问题标题】:What changes can be made to code to get the graph that I wanted using ggplot2?可以对代码进行哪些更改以使用 ggplot2 获得我想要的图形?
【发布时间】:2021-12-29 13:23:10
【问题描述】:

我有一个数据框 "India_variant_df",我正在尝试使用 ggplot2 包绘制多线图。作为输出的图表不是我想象的。我需要帮助来弄清楚我哪里出错了。

这是我的 df。

dput(India_variant_df)
    structure(list(month_year = c("Apr-2021", "Apr-2021", "Apr-2021", 
    "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", 
    "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", 
    "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", "Apr-2021", 
    "Apr-2021", "Apr-2021", "Apr-2021", "Aug-2020", "Aug-2020", "Aug-2020", 
    "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", 
    "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", 
    "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2020", 
    "Aug-2020", "Aug-2020", "Aug-2020", "Aug-2021", "Aug-2021", "Aug-2021", 
    "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", 
    "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", 
    "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", "Aug-2021", 
    "Aug-2021", "Aug-2021", "Aug-2021", "Dec-2020", "Dec-2020", "Dec-2020", 
    "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", 
    "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", 
    "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2020", 
    "Dec-2020", "Dec-2020", "Dec-2020", "Dec-2021", "Dec-2021", "Dec-2021", 
    "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", 
    "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", 
    "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", "Dec-2021", 
    "Dec-2021", "Dec-2021", "Dec-2021", "Feb-2021", "Feb-2021", "Feb-2021", 
    "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", 
    "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", 
    "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", "Feb-2021", 
    "Feb-2021", "Feb-2021", "Feb-2021", "Jan-2021", "Jan-2021", "Jan-2021", 
    "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", 
    "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", 
    "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", "Jan-2021", 
    "Jan-2021", "Jan-2021", "Jan-2021", "Jul-2020", "Jul-2020", "Jul-2020", 
    "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", 
    "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", 
    "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2020", 
    "Jul-2020", "Jul-2020", "Jul-2020", "Jul-2021", "Jul-2021", "Jul-2021", 
    "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", 
    "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", 
    "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", "Jul-2021", 
    "Jul-2021", "Jul-2021", "Jul-2021", "Jun-2020", "Jun-2020", "Jun-2020", 
    "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", 
    "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", 
    "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2020", 
    "Jun-2020", "Jun-2020", "Jun-2020", "Jun-2021", "Jun-2021", "Jun-2021", 
    "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", 
    "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", 
    "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", "Jun-2021", 
    "Jun-2021", "Jun-2021", "Jun-2021", "Mar-2021", "Mar-2021", "Mar-2021", 
    "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", 
    "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", 
    "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", "Mar-2021", 
    "Mar-2021", "Mar-2021", "Mar-2021", "May-2020", "May-2020", "May-2020", 
    "May-2020", "May-2020", "May-2020", "May-2020", "May-2020", "May-2020", 
    "May-2020", "May-2020", "May-2020", "May-2020", "May-2020", "May-2020", 
    "May-2020", "May-2020", "May-2020", "May-2020", "May-2020", "May-2020", 
    "May-2020", "May-2020", "May-2020", "May-2021", "May-2021", "May-2021", 
    "May-2021", "May-2021", "May-2021", "May-2021", "May-2021", "May-2021", 
    "May-2021", "May-2021", "May-2021", "May-2021", "May-2021", "May-2021", 
    "May-2021", "May-2021", "May-2021", "May-2021", "May-2021", "May-2021", 
    "May-2021", "May-2021", "May-2021", "Nov-2020", "Nov-2020", "Nov-2020", 
    "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", 
    "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", 
    "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2020", 
    "Nov-2020", "Nov-2020", "Nov-2020", "Nov-2021", "Nov-2021", "Nov-2021", 
    "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", 
    "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", 
    "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", "Nov-2021", 
    "Nov-2021", "Nov-2021", "Nov-2021", "Oct-2020", "Oct-2020", "Oct-2020", 
    "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", 
    "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", 
    "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2020", 
    "Oct-2020", "Oct-2020", "Oct-2020", "Oct-2021", "Oct-2021", "Oct-2021", 
    "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", 
    "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", 
    "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", "Oct-2021", 
    "Oct-2021", "Oct-2021", "Oct-2021", "Sep-2020", "Sep-2020", "Sep-2020", 
    "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", 
    "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", 
    "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2020", 
    "Sep-2020", "Sep-2020", "Sep-2020", "Sep-2021", "Sep-2021", "Sep-2021", 
    "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", 
    "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", 
    "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", "Sep-2021", 
    "Sep-2021", "Sep-2021", "Sep-2021"), variant = c("Alpha", "B.1.1.277", 
    "B.1.1.302", "B.1.1.519", "B.1.160", "B.1.177", "B.1.221", "B.1.258", 
    "B.1.367", "B.1.620", "Beta", "Delta", "Epsilon", "Eta", "Gamma", 
    "Iota", "Kappa", "Lambda", "Mu", "non_who", "Omicron", "others", 
    "S:677H.Robin1", "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", 
    "B.1.1.519", "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", 
    "B.1.620", "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", 
    "Kappa", "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican", "Alpha", "B.1.1.277", "B.1.1.302", "B.1.1.519", 
    "B.1.160", "B.1.177", "B.1.221", "B.1.258", "B.1.367", "B.1.620", 
    "Beta", "Delta", "Epsilon", "Eta", "Gamma", "Iota", "Kappa", 
    "Lambda", "Mu", "non_who", "Omicron", "others", "S:677H.Robin1", 
    "S:677P.Pelican"), num_seqs_of_variant = c(2035L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 121L, 5248L, 0L, 42L, 3L, 1L, 2741L, 
    0L, 0L, 2003L, 0L, 2003L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1046L, 0L, 1046L, 
    0L, 0L, 7L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 5355L, 0L, 
    0L, 1L, 0L, 5L, 0L, 0L, 107L, 0L, 107L, 0L, 0L, 18L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 31L, 0L, 0L, 0L, 0L, 8L, 0L, 
    0L, 2585L, 0L, 2585L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 617L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 18L, 64L, 18L, 
    0L, 0L, 262L, 0L, 0L, 0L, 0L, 6L, 0L, 1L, 0L, 0L, 11L, 156L, 
    0L, 7L, 0L, 0L, 237L, 0L, 0L, 2356L, 0L, 2349L, 0L, 0L, 134L, 
    0L, 0L, 0L, 1L, 10L, 0L, 5L, 0L, 0L, 3L, 84L, 0L, 0L, 0L, 0L, 
    28L, 0L, 0L, 2762L, 0L, 2745L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 593L, 0L, 
    593L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 6409L, 
    0L, 0L, 0L, 0L, 19L, 0L, 0L, 219L, 0L, 219L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 1383L, 0L, 1383L, 0L, 0L, 28L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 1L, 9L, 7684L, 0L, 0L, 0L, 0L, 37L, 0L, 0L, 258L, 0L, 257L, 
    0L, 0L, 1672L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 87L, 380L, 
    1L, 50L, 0L, 0L, 1577L, 0L, 0L, 2461L, 0L, 2461L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 1120L, 0L, 1120L, 0L, 0L, 639L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 53L, 16940L, 0L, 14L, 1L, 0L, 765L, 0L, 0L, 1387L, 
    0L, 1387L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    28L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 611L, 0L, 611L, 0L, 0L, 2L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 4007L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 210L, 5L, 210L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 736L, 0L, 736L, 
    0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 4123L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 62L, 0L, 61L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 820L, 
    0L, 820L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
    6738L, 0L, 0L, 0L, 0L, 15L, 0L, 0L, 73L, 0L, 72L, 0L, 0L)), class = "data.frame", row.names = c(NA, 
    -480L))

这是我的代码。

ggplot(data = India_variant_df, aes(x= month_year, y = num_seqs_of_variant, 
                                    group = "variant", colour = variant))+ 
      geom_point(stat = "identity")+
      geom_line()

这是我从代码中得到的图表。

这是我想要的图表。(我使用 Excel 数据透视图工具创建)

【问题讨论】:

  • 第一步:去掉引号,即使用group = variant
  • 另一个问题是您的 x 轴值没有按时间顺序排列。改变这个和 Stefan 提到的内容,你的图表就很好了。

标签: r ggplot2


【解决方案1】:
  1. 如上所述,使用group = variant,而不是"variant"

  2. 您的 x 轴当前是分类的(字符串),而不是类似数字的东西。更糟糕的是,它们是按字典顺序排序的,所以它们完全不符合(直觉)顺序:

    sort(unique(India_variant_df$month_year))
    #  [1] "Apr-2021" "Aug-2020" "Aug-2021" "Dec-2020" "Dec-2021" "Feb-2021"
    #  [7] "Jan-2021" "Jul-2020" "Jul-2021" "Jun-2020" "Jun-2021" "Mar-2021"
    # [13] "May-2020" "May-2021" "Nov-2020" "Nov-2021" "Oct-2020" "Oct-2021"
    # [19] "Sep-2020" "Sep-2021"
    

    (而ggplot 会为你整理它们。)

    将其更改为适当的 Date-class 对象:

    India_variant_df$date <- as.Date(paste0("01-", India_variant_df$month_year), format = "%d-%b-%Y")
    head(India_variant_df)
    #   month_year   variant num_seqs_of_variant       date
    # 1   Apr-2021     Alpha                2035 2021-04-01
    # 2   Apr-2021 B.1.1.277                   0 2021-04-01
    # 3   Apr-2021 B.1.1.302                   0 2021-04-01
    # 4   Apr-2021 B.1.1.519                   0 2021-04-01
    # 5   Apr-2021   B.1.160                   0 2021-04-01
    # 6   Apr-2021   B.1.177                   0 2021-04-01
    
  3. 为了得到你想要的日期标签,我们需要使用scale_x_date。我将使用的两个参数是 date_breaks 以每月间隔设置它们,labels;后者将需要一点肘部润滑脂才能度过沮丧的一年,但我认为它有效。 (我不知道如何让它看起来与您的演示图片完全一样。)

    ggplot(data = India_variant_df, aes(x= date, y = num_seqs_of_variant, 
                                        group = variant, colour = variant))+ 
      geom_point(stat = "identity") +
      geom_line() +
      scale_x_date(
        date_breaks = "1 month",
        labels = function(z) ifelse(seq_along(z) == 2L | format(z, format="%m") == "01",
                                    format(z, format = "%b\n%Y"),
                                    format(z, "%b"))
      )
    

    ifelse 有两个值得一提的组件,它试图在某些月份下方添加年份。

    • 每年一月以下;为此,format(z, format="%m"),这是语言环境安全的(就一月的拼写而言);
    • 由于我们不确定显示的第一个月是不是一月,所以我在显示的第一个月下显示年份。这为我们提供了一些背景信息,并在数据仅包括一年中的 2 月至 12 月(否则永远不会显示该年份)的不太可能发生的情况下保护我们。为此,我们使用seq_along(z) == 2L。它是2L,因为传递给这个匿名函数的第一个zNA,所以我们选择第二个。可能还有其他技巧可以让这个完美(如果第一个元素是 always NA,我不记得随便)。

(剩下的主题由你决定:-)

【讨论】:

    【解决方案2】:

    我删除了引号并将 %b-%Ycol 转换为 Date col。

    India_variant_df["month_year"] = as.Date(paste0("01-", India_variant_df[["month_year"]]), format = "%d-%b-%Y")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -480L))
    
    
    ggplot(data = India_variant_df, aes(x= month_year, y = num_seqs_of_variant, 
                                        group = variant, colour = variant))+ 
      geom_point(stat = "identity")+
      geom_line()
    

    输出:

    【讨论】:

      猜你喜欢
      • 2015-08-10
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      相关资源
      最近更新 更多