[英]Ordering geom_bar plots of frequency by multiple factors
我正在创建一个条形图来显示每个县的调查回复数量,我想按县和地区对回复进行分组。 我的数据如下所示:
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)
该图按响应频率按县排序。 我想先按地区排序,然后按响应计数排序。 我想要这个相同的图表,但所有西海岸县按响应从最多到最少的顺序排列,然后东海岸县按响应从最多到最少的顺序排列。
对它进行分面不会产生我想要的效果,因为它将西海岸响应拉到单独的网格中,并且您不能再通过相同的 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)
编辑:这就是使用 facet wrap 时的样子。 我不是粉丝,因为当条形不是从相同的 y 轴开始时,很难直观地比较它们:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.