首页 文章

我在这个阴谋中做错了什么?

提问于
浏览
0

我正在尝试将geom_area绘制如下 .

natural_prods %>% 
  ggplot(., aes(x = WEEK_NUM, y = SPEND, fill = HSHD_COMPOSITION)) +
  geom_area()

但我的输出看起来像这样 . 任何人都可以帮助我理解为什么会发生这种情况?我试图看到不同大小的家庭(HSHD_COMPOSITION)随着时间的推移花费的模式(WEEK_NUM) .

样本数据

SPEND  HSHD_COMPOSITION    WEEK_NUM
1.99    Single Female       1
4.79    2 Adults and Kids   1
1.98    1 Adult and Kids    2
7.73    NA                  1
2.15    1 Adult and Kids    3
3.99    2 Adults and Kids   1
1.57    1 Adult and Kids    3
8                      NA   4
5.99    2 Adults and Kids   5
4.99    2 Adults and Kids   4
5.16    Single Female       6
1.39    Single Male         7
1.5            NA           3
0.79    2 Adults and Kids   2
0.99    Single Male         6
1.99    2 Adults            4
2.5           NA            5
3.2    2 Adults and Kids    7
1       1 Adult and Kids    8

样本数据R:

structure(list(BASKET_NUM = c("003705", "004612", "009086", "009829", 
"010003", "015787", "019087", "021615", "021712", "023202", "027586", 
"029586", "032961", "033600", "037672", "038300", "048690", "052045", 
"052218", "053068"), SPEND = c(1.75, 11.56, 1.99, 2.79, 4.79, 
6.29, 1.98, 1.49, 14.98, 5.97, 5, 4.99, 7.73, 2.15, 3.99, 1.57, 
8, 5.99, 4.99, 4.99), HSHD_COMPOSITION = structure(c(3L, 3L, 
5L, 1L, 4L, 3L, 2L, 3L, 2L, NA, 3L, 6L, NA, 2L, 4L, 2L, NA, 4L, 
4L, 4L), .Label = c("1 Adult", "1 Adult and Kids", "2 Adults", 
"2 Adults and Kids", "Single Female", "Single Male"), class = "factor"), 
    WEEK_NUM = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 
    3L, 4L, 4L, 5L, 4L, 5L, 6L, 6L, 6L), COMMODITY = c("PRODUCE", 
    "GROCERY STAPLE", "GROCERY STAPLE", "DAIRY", "FROZEN FOOD", 
    "DAIRY", "PRODUCE", "PRODUCE", "MEAT - BEEF", "GROCERY STAPLE", 
    "DAIRY", "PRODUCE", "MEAT - CHICKEN", "PRODUCE", "FROZEN FOOD", 
    "PRODUCE", "DAIRY", "GROCERY STAPLE", "PRODUCE", "MEAT - PORK"
    )), row.names = c(NA, -20L), class = c("tbl_df", "tbl", "data.frame"
))

我需要我的输出看起来像这样

1 回答

  • 1

    由于您的数据集非常小,我选择了一个带有 width = 1 的堆积条形图

    library( ggplot2 )
    natural_prods %>% 
      filter( !is.na( HSHD_COMPOSITION ) ) %>%
      group_by( WEEK_NUM, HSHD_COMPOSITION ) %>%
      summarise( total = sum( SPEND ) ) %>%
      ggplot( aes( x = WEEK_NUM, y = total, colour = HSHD_COMPOSITION, fill = HSHD_COMPOSITION ) ) +
      geom_col( width = 1, position = "stack" )
    

相关问题