通过多个因子订购频率的geom_bar图

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

我正在创建一个条形图以显示每个县的调查答复的数量,我想按县和地区对答复进行分组。我的数据如下所示:

head(df)
# A tibble: 6 x 4
  responseid region     county      industry             
       <dbl> <fct>      <fct>       <chr>                
1        137 West Coast Los Angeles Construction         
2        138 West Coast San Diego   Energy               
3        139 West Coast Orange      Professional Services
4        140 East Coast Queens      Restaurants          
5        144 West Coast San Diego   Energy               
6        145 East Coast Miami-Dade  Public Sector    

我正在运行此代码:

ggplot(df, mapping = aes(x = fct_rev(fct_infreq(county)), y = stat(count))) +
  geom_bar(aes(fill = region)) + 
  coord_flip()+
  scale_y_continuous() +
  ggtitle("Responses by County") +
  ylab("Number of Responses")+
  xlab("County") + 
  labs(fill = "Region") +
  geom_text(stat='count', aes(label=..count..), vjust = .5, hjust = -1)

哪个生成此图:plot of response county by county, colored by region

[该图按县的响应频率排序。我想先按区域排序,然后按响应计数排序。我想要同样的图表,但是所有西海岸县的响应顺序从最高到最小,然后是东海岸县的响应从最高到最小。

取消处理不会达到我想要的效果,因为它会将西海岸的响应拉到一个单独的网格上,并且您无法再通过相同的y轴比较所有县;没有轴翻转的刻面会使县名重叠并变得难以辨认。

我也试图添加一个这样的交互参数,但是根本没有改变情节:

ggplot(df, mapping = aes(x = fct_rev(fct_infreq(county)), y = stat(count), group = interaction(region, county))) +
  geom_bar(aes(fill = region)) + 
  coord_flip()+
  scale_y_continuous() +
  ggtitle("Responses by County") +
  ylab("Number of Responses")+
  xlab("County") + 
  labs(fill = "Region") +
  geom_text(stat='count', aes(label=..count..), vjust = .5, hjust = -1)

编辑:这是使用小平面包装的外观。我不是粉丝,因为当它们不是从相同的y轴开始时,很难在视觉上比较这些条:enter image description here

如果删除coord_flip,则所有条形图均从同一位置开始,但是您根本无法读取县名。enter image description here

我正在创建一个条形图以显示每个县的调查答复的数量,我想按县和地区对答复进行分组。我的数据如下所示:head(df)#一个小点:6 x 4 ...

r ggplot2 geom-bar
1个回答
0
投票

我在原始图上添加了以下两行,以获得所需的结果。谢谢大家的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.