R语言 如何用ggplot2对条形图进行分面排序
在这篇文章中,我们将讨论如何使用R编程语言中的ggplot2包对条形图进行分面排序。我们可以通过使用geom_col()函数和ggplot2包的facet_wrap()函数来绘制一个分面条形图。
语法: ggplot( dataframe, aes( x, y )+ geom_col() + facet_wrap(~z)
参数
- dataframe: 确定用于绘图的数据框架。
- x: 确定X轴的矢量列。
- y :确定Y轴的向量列。
- z: 决定了必须围绕其绘制的变量。
创建一个基本的柱状图
下面是一个使用facet_wrap()函数进行分面的基本柱状图。
使用的数据集: 样本2
输出
重新排序的柱状图
为了对柱状图进行重新排序,以便更好地实现数据的可视化,我们使用R语言的tidytext包的reorder_within()函数。reorder_within()函数在用faceting绘制之前对列进行了重新排序,这样一来,每个facet内的值都是有序的。但这产生了一个问题,即在分面后,所有被分到其他面的列也作为一个空列并存于所有其他面中。为了解决这个问题,我们在facet_wrap()函数中添加了一个尺度参数,根据需要释放的轴数据,其值为free_y或free_x。
语法: ggplot( dataframe, aes( reorder_within(x,y,z) , y )+ geom_col() + facet_wrap(~z, scales= “free_y/free_x”)
参数
- dataframe: 决定用于绘图的数据框架。
- x: 确定x轴的矢量列。
- y :确定y轴的向量列。
- z: 决定了必须围绕其绘制的变量。
例子
这里是一个使用facet_wrap()函数进行分面的基本条形图。我们还使用tidytext包的reorder_within()函数对条形图进行了重新排序。
输出