R 中的交叉表可视化图

CrossTab Visulation Graph in R

我的数据结构如下:

F1           F2         2012   2011 
Dinner      Monday        5      10
Lunch       Tuesday      20      15
Breakfast   Wednesday    4       20

我想创建一个交叉表可视化图表,就像 post 中描述的那样:

visualizing crosstab tables with a plot in R

但是,我想要图表上有两列,以便我可以看到同比差异。

我成功复制了上面的代码 link 创建了一年的图表。有办法让我再增加一年吗?

首先,我们将您的数据重新排列为长格式:

dflong <- df %>% tidyr::gather(key, value, -(F1:F2))

然后,使用您提到的 post 中的 ggplot 方法,只需添加 facet_grid():

ggplot(dflong, aes(F1, F2)) + 
  geom_point(aes(size = value), colour = "green") + 
  theme_bw() + xlab("") + ylab("") +
  scale_size_continuous(range=c(10,30)) + 
  geom_text(aes(label = value)) +
  facet_grid(. ~ key)

给出: