我正尝试如下绘制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"
))
我需要我的输出看起来像这样
答案 0 :(得分: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" )