首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ggplot中的facet_wrap选项可视化每个组的大小?

问如何使用ggplot中的facet_wrap选项可视化每个组的大小?
EN

Stack Overflow用户
提问于 2021-10-05 14:28:52
回答 1查看 86关注 0票数 0

我在ggplot中使用geom_bar来可视化客户的购买决策(3个因素级别的购买,可能是,没有购买。使用facet_wrap将决策分组为几个产品组。

代码语言:javascript
复制
ggplot(df, aes(x= status_purchase)) + 
  geom_bar() + 
  theme(axis.text.x = element_text(angle = 90)) + 
  facet_wrap(~ product_group)

不足为奇的是,它工作得很好。我是否有任何选项来可视化facet_wrap中各个组的另一个变量(例如,每个产品组的总费用)?在图的右上角放置一个相应大小的气泡,或者至少是标题中费用的总和,这样会更好。

感谢您的回答。

菲利普

EN

回答 1

Stack Overflow用户

发布于 2021-10-05 21:22:57

操作。在没有特定示例的情况下,让我演示一种方法,该方法使用geom_text()来显示按方面分隔的给定数据集的汇总数据。

在本例中,我将使用txhousing数据集(它是ggplot2的一部分):

代码语言:javascript
复制
library(dplyr)
library(tidyr)
library(ggplot2)

df <- txhousing
df %>% ggplot(aes(x=month, y=sales)) + geom_col() +
  facet_wrap(~year)

​

​

假设我们想要在每个方面的右上角显示一年的红色销售总额。要做到这一点,最简单的方法是首先在单独的数据集中计算汇总数据,然后通过geom_text()根据方面覆盖该信息。

代码语言:javascript
复制
df_summary <- df %>%
  group_by(year) %>%
  summarize(total = sum(sales, na.rm = TRUE))

df %>% ggplot(aes(x=month, y=sales)) + geom_col() +
  facet_wrap(~year) +
  geom_text(
    data=df_summary, x=12, y=33000, aes(label=total),
    hjust=1, color='red', size=3
  )

​

​

我在geom_text()调用中覆盖了x和y美学的映射。只要df_summary数据集包含一个名为year的列,数据就会正确地放在facet上。

我希望您能将类似的想法应用到您的特定问题中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69452293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档