如何绘制每天篮子大小的数量?

时间:2016-11-12 16:57:41

标签: r

以下是我的数据的前50条记录:

structure(list(Day = structure(c(2L, 2L, 5L, 7L, 7L, 6L, 1L, 3L, 7L, 3L, 7L, 5L, 5L, 3L, 7L, 1L, 1L, 3L, 6L, 2L, 6L, 2L, 3L, 4L, 7L, 6L, 3L, 7L, 6L, 7L, 2L, 6L, 7L, 7L, 2L, 3L, 6L, 4L, 3L, 2L, 5L, 6L, 7L, 7L, 3L, 6L, 3L, 4L, 6L, 4L), .Label = c("1", "2", "3", "4", "5", "6", "7"), class = "factor"), BASKET_SIZE = structure(c(1L, 3L, 3L, 2L, 3L, 2L, 2L, 2L, 2L, 1L, 2L, 3L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 3L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L, 3L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 3L, 1L), .Label = c("L", "M", "S"), class = "factor")), .Names = c("Day", "BASKET_SIZE"), row.names = c(NA, 50L), class = "data.frame")

基本上我有3个篮子尺寸(S,M,L)和一周7天(1-7)。我用plot(e)绘制了数据,这给了我这个:

enter image description here

所以如果我想知道每天的篮子大小,这会很好,但我对每天篮子大小的总量更感兴趣。

<小时/> 这是我尝试过的: barchart(Day~BASKET_SIZE,data=e,groups=BASKET_SIZE)基于此帖:Simplest way to do grouped barplot。但我似乎无法获得正确的轴或分布:

enter image description here

另外,我希望它是垂直的,比如每个篮子大小的总和,并且有一个图例显示每个篮子大小的颜色。我有这个图表似乎以某种方式将我的S,M,L转换为数字......我知道它不对,因为我有3.8k行数据。

1 个答案:

答案 0 :(得分:1)

怎么样

tt  <- t(table(dd))
barplot(as.matrix(tt),beside=TRUE)

enter image description here

您必须手动添加图例(?legend)。

您也可以使用ggplot2执行此操作,例如

library(ggplot2)
ggplot(dd,aes(Day,fill=BASKET_SIZE))+
    geom_bar(position="dodge")

ggplot会自动为您提供图例。这里的例子有一些空的类别(例如第1天没有大篮子);如果你想正确处理这种情况,看起来你必须pre-tabulate the data(但如果你的真实数据集很大,那可能不是问题)。