What is the most elegant way to split data and produce seasonal boxplots?

前端 未结 3 1019
无人及你
无人及你 2021-01-12 17:40

I want to produce seasonal boxplots for a lot of different time series. I hope that the code below clearly illustrates what I want to do.

My question is now, how to

相关标签:
3条回答
  • 2021-01-12 18:20

    You are better off picking out the month names directly with the "%b" format and using an ordered factor and the formula interface for boxplot:

    DF$month <- factor(strftime(DF$Time,"%b"),levels=month.abb)
    boxplot(Data~month,DF)
    

    enter image description here

    0 讨论(0)
  • 2021-01-12 18:23

    Using 'ggplot2' (and @James' month names, thanks!):

    DF$month <- factor(strftime(DF$Time,"%b"),levels=month.abb)
    ggplot(DF, aes(x=,month, y=Data)) +
        geom_boxplot()
    

    boxplot

    (BTW: note that in 'ggplot2' "The upper and lower "hinges" correspond to the first and third quartiles (the 25th and 7th percentiles). This differs slightly from the method used by the boxplot function, and may be apparent with small samples." - see documentation)

    0 讨论(0)
  • 2021-01-12 18:26

    To set months as ordered factor in any locale settings use a trick which can be found in help page for ?month.abb:

    Sys.setlocale("LC_TIME", "German_Germany")
    DF$month <- factor(format(DF$Time, "%b"), levels=format(ISOdate(2000, 1:12, 1), "%b"))
    

    And you could plot it in lattice as well:

    require(lattice)
    bwplot(Data~month, DF, pch="|") # set pch to nice line instead of point
    

    Lattice boxplot

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