如何更改 ggplot2 中构面的顺序(带有示例)
您可以使用以下基本语法来指定 ggplot2 中构面的顺序:
p+
facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))
以下示例展示了如何在实践中使用此语法。
示例:更改 ggplot2 中构面的顺序
假设我们在 R 中有以下数据框:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
points=c(8, 14, 20, 22, 25, 29, 30, 31),
assists=c(10, 5, 5, 3, 8, 6, 9, 12))
#view data frame
df
team points assists
1 to 8 10
2 to 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12
以下代码展示了如何使用facet_grid()创建一个网格,该网格显示每个团队的助攻与得分的散点图:
library (ggplot2)
#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(.~team)
默认情况下,ggplot2 根据数据框团队变量中首先出现的值按顺序放置散点图。
但是,我们可以将 team 转换为因子变量,并使用级别参数来指定团队在图中的放置顺序:
library (ggplot2)
#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(~factor(team, levels=c(' C ', ' D ', ' A ', ' B ')))
请注意,点云现在根据我们在级别参数中指定的顺序进行排序:C、D、A、B。
使用这种方法的优点是我们实际上并不改变底层数据。
相反,我们只更改facet_grid()函数中的级别。
其他资源
以下教程解释了如何在 ggplot2 中执行其他常见任务: