R 按多因素排序频率几何条形图

R 按多因素排序频率几何条形图,r,ggplot2,geom-bar,R,Ggplot2,Geom Bar,我正在创建一个条形图来显示每个县的调查答复数量,并希望按县和地区对答复进行分组。我的数据如下所示: head(df) # A tibble: 6 x 4 responseid region county industry <dbl> <fct> <fct> <chr> 1 137 West Coast Los Angel

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

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    
这将生成此绘图:

该图按县的响应频率排序。我想先按地区排序,然后按响应计数排序。我想要这个相同的图表,但所有西海岸县的响应从大到小依次排列,然后东海岸县的响应从大到小依次排列

刻面并没有给我想要的效果,因为它将西海岸的响应拉到一个单独的网格,你不能再通过相同的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轴开始时,很难直观地比较它们:

如果删除coord_翻转,所有的条都从同一个地方开始,但是您根本无法读取县名称。

我在原始绘图中添加了以下两行,以获得我想要的结果。谢谢所有帮助过我的人

facet_grid(region ~ ., scales = "free_y", space = "free") +
  theme(strip.background = element_blank(), strip.text = element_blank())

我在原始绘图中添加了以下两行,以获得我想要的结果。谢谢所有帮助过我的人

facet_grid(region ~ ., scales = "free_y", space = "free") +
  theme(strip.background = element_blank(), strip.text = element_blank())

通过显式设置因子级别的顺序,您应该能够实现轴上类别的任意顺序:类似于
df$country Faceting的东西,默认情况下应该在面上共享相同的轴范围,除非您显式告诉它具有自由比例。由于县只能存在于这两个面中的一个面中,因此您希望县比例是自由的,因此它会删除未使用的县,但保持另一个轴固定,以便它们具有可比性。查看
facet\u wrap()
的文档,了解相关的参数选项。明确设置因子肯定是一个解决办法,但我真的想要一个动态解决方案。我会定期复制这张图表,因为有人回复-如果在某一点上圣地亚哥县得到的回复比洛杉矶县多,我必须重新设置级别以反映这一点。刻面的问题不是轴的比例不同,我只是说,这些条实际上不再相邻,因此,它们更难在视觉上进行比较。如果我不隐瞒坐标,那就不会发生这种情况,但是你就看不到县名了。我将用视觉效果更新帖子。关于“facet\u wrap(~Region,ncol=1)”如何?这将在每个区域的顶部绘制区域。我还建议在facet时只保留每个区域中的县。这可以通过“facet\u wrap(~Region,ncol=1,scales=“free\u y”)实现。您应该能够通过显式设置因子级别的顺序来实现轴上类别的任意顺序:类似于
df$country Faceting,默认情况下,应该在facet上共享相同的轴范围,除非您显式告诉它具有自由比例。因为县只能存在于两个facet中的一个s、 您希望县市比例是自由的,因此它会删除未使用的,但保持另一个轴固定,以便它们具有可比性。请查看
facet_wrap()的文档
有关相关参数选项。明确设置系数肯定是一个解决办法,但我真的希望有一个动态解决方案。我将定期复制此图表,以获得响应-如果在某个时候圣地亚哥县得到的响应比洛杉矶县多,我将不得不重新设置级别以反映这一点。p刻面的问题不在于轴的比例不同,我只是说这些条实际上不再相邻,因此它们更难在视觉上进行比较。如果我保持坐标不变,这不会发生,但是你就看不到县名。我会用视觉信息更新帖子。“刻面”如何(~Region,ncol=1)。这将在每个区域的顶部绘制区域。我还建议在刻面时只保留每个区域中的县。这可以通过“刻面”包装来实现(~Region,ncol=1,scales=“free_y”)。