如何更改 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 '))) 

更改ggplot2中facet的顺序

请注意,点云现在根据我们在级别参数中指定的顺序进行排序:C、D、A、B。

使用这种方法的优点是我们实际上并不改变底层数据。

相反,我们只更改facet_grid()函数中的级别。

其他资源

以下教程解释了如何在 ggplot2 中执行其他常见任务:

如何更改ggplot2中的字体大小
如何删除ggplot2中的图例
如何在ggplot2中旋转轴标签

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注