来自具有不同列和变量

时间:2017-08-24 07:43:48

标签: r graph

我有一个包含大量行(+ 50k)的大数据帧。有一些列,但重要的是" Date"," Stock"," Units_Sells"。数据框如下:

df <- data.frame(Product=sample(LETTERS[1:4],15, replace=TRUE), 
                              Stock=sample(1:15,15,replace=TRUE), 
                              Store=sample(2340:2342,15,replace=TRUE),
                              Vta=sample(1:14,15,replace=TRUE),
                              Date=sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by="day"), 15))

我希望按商店和产品创建图形线存储,当x轴是日期,y轴是单位,因为值(线)应该是Stock和Vta。 我的意思是,我想为每个商店产品做一个这样的图表: LINK TO THE GRAPH EXAMPLE

我的意思是,每个商店和产品都有一张图表。我不知道我是否在解释,因为英语不是我的母语。

谢谢,

1 个答案:

答案 0 :(得分:0)

所以,我收集的是你想为产品和商店的每个组合做一个图表。然后,每个组合都有两个图表,一个显示Vta,另一个显示Stock

为此,我稍微改变了您的示例以包含更多观察结果:

df <- data.frame(Product=sample(LETTERS[1:4],100, replace=TRUE), 
                 Stock=sample(1:15,100,replace=TRUE), 
                 Store=sample(2340:2342,100,replace=TRUE),
                 Vta=sample(1:14,100,replace=TRUE),
                 Date=sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by="day"), 100))

然后,您必须重新整形数据框,以便在图表上有两行:

df <- tidyr::gather(df, key = "type", value = "value", -Store, -Date, -Product)

然后您可以像这样创建图表:

library(ggplot2)

# Stock/Vta graph
ggplot(df, aes(Date, value, col = type)) +
  geom_line() +
  facet_grid(Store~Product) +
  ggtitle("Stock/Vta")