基于 R 中的多个分类表示时间序列数据

Representing time series data based on multiple classifications in R

所以这是我第一次 post 在 SO 中。 我有一个数据集,看起来如下所示。但它适用于更多的桶和更长的时间段。我希望获得某种交互式图表,非常适合表示此数据。表示需要考虑所有提到的列并且需要是交互式的。我尝试浏览 dygraphs、ggplot2、rcharts 和其他一些包,但没有找到任何简单方便的东西。我刚开始使用 R,所以一些见解会很棒。

Month    Age    Gender  Percentage
Mar-16  0-20    F         1.01
Mar-16  0-20    M         0.46
Mar-16  21-30   F         5.08
Mar-16  21-30   M         4.03
Apr-16  0-20    F         2.34
Apr-16  0-20    M         3.55
Apr-16  21-30   F         6.78
Apr-16  21-30   M         9.08
May-16  0-20    F         3.56
May-16  0-20    M         3
May-16  21-30   F         2.08
May-16  21-30   M         10

这是@KppatelPatel 建议的 ggplot2 和 plotly 的快速可视化 ggplotly 的输出将是图形用户界面上的交互式绘图,带有悬停信息,例如Month: Apr-16; Percentage: 2.34; Gender: F

library(ggplot2)
library(plotly)

p <- ggplot(dat, aes(x=Month, y=Percentage, fill=Gender)) + 
  geom_bar(stat="identity", position = position_dodge()) + 
  facet_wrap(~Age, ncol=2)

ggplotly(p)

所提供数据的 data.frame 输入:

dat <- structure(list(Month = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 1L, 
1L, 3L, 3L, 3L, 3L), .Label = c("Apr-16", "Mar-16", "May-16"), class = "factor"), 
Age = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 
2L, 2L), .Label = c("0-20", "21-30"), class = "factor"), 
Gender = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L), .Label = c("F", "M"), class = "factor"), Percentage = c(1.01, 
0.46, 5.08, 4.03, 2.34, 3.55, 6.78, 9.08, 3.56, 3, 2.08, 
10)), .Names = c("Month", "Age", "Gender", "Percentage"), class = "data.frame", row.names = c(NA, 
-12L))

编辑:

要按逻辑顺序绘制时间,请将月份格式转换为日期格式:

library(dplyr)
dat$Time <- dat$Month %>% 
            as.character %>%
            paste("01-", .) %>%
            as.Date(., format= "%d-%b-%y")

使用 x=Time 绘制上面相同的 ggplot 将得到以下结果: