修改图 - 将一个分类数据与小平面包裹图中的其余数据分开

问题描述 投票:0回答:1

我有一个数据集,其中我的 item_id 列有分类数据,其中之一是 FOODS_1_012。它的销售数字明显高于其他类别,我想将它分成自己的情节,同时将其余类别保留在自己的情节中。这可能吗?

这是我的代码:

#facet wrap of monthly sales by item and store.
grocery_tsibble %>%
  filter(state_id == "TX") %>% 
  group_by(time = month, store_id, item_id) %>% 
  summarise(sales=sum(sales)) %>% 
  ggplot(aes(x=as.Date(month), y=sales, color = item_id)) +
  geom_line() +
  facet_wrap(~store_id) +
  theme_clean() +
  ggtitle("Line Plot") +
  xlab("Year - Months") + ylab("Sales") +
  scale_x_date(date_breaks = "5 months", labels = scales::date_format(format = "%y-%m")) +
  scale_y_continuous(n.breaks = 10) +
  theme(legend.position="bottom",
        legend.text = element_text(size=7),
        legend.title = element_text(size=7, vjust = 0.7),
        legend.key.size = unit(0.5, 'cm'),
        axis.text.x = element_text(angle = 90, hjust = 1),
        panel.grid.major.x = element_line(color = "gray",
                                          size = 0.5,
                                          linetype = 3),
        plot.margin = margin(.35,.75,.35,.35, "cm"),
        plot.title = element_text(color="#6b5b5a", size=14,
                                  face="bold.italic",hjust = 0.5),
        axis.title.x = element_text(color="#6b5b5a", 
                                    size=10, 
                                    face="bold"),
        axis.title.y = element_text(color="#6b5b5a", 
                                    size=10, 
                                    face="bold"),
        strip.background =element_rect(fill="#494d54"),
        strip.text = element_text(colour = 'white'))

这是输出,您可以看到 FOOD_1_012 非常高,所以我想将它分成自己的图并在每个商店内进行比较。因此,例如 TX_1 和其余部分等,每个下方都有两个地块。一个是 FOOD_1_012,另一个是剩余的分类数据。

r ggplot2 facet-wrap
1个回答
0
投票

也许你可以从这个开始,看看它会把你带到哪里:

grocery_tsibble %>%
  filter(state_id == "TX") %>% 
  group_by(time = month, store_id, item_id) %>% 
  summarise(sales=sum(sales)) %>% 
  mutate(facet.sales = ifelse(item_id == "FOODS_1_012", 
                              "High sales volume", 
                              "Low sales volume")) %>%
  ggplot(aes(x=as.Date(month), y=sales, color = item_id)) +
  geom_line() +
  facet_grid(rows = vars(facet.sales),
             cols = vars(store_id),
             scales = "free_y") # + all the scale / theme specifications in your code
© www.soinside.com 2019 - 2024. All rights reserved.