首页 > 解决方案 > 如何通过特定键重新排序 ggplot2::facet_wrap 构面?

问题描述

从我的数据集中,我创建了多个方面。现在这些方面实际上是按 chrl 的类型排序的。我想按纬度重新排列各个方面。例如,具有最低纬度值的构面将首先出现,然后是下一个,等等。

我的桌子:

位置 | 珊瑚类型 | 经度 | 纬度 | 年份 | 价值 |

链接到数据集——https://drive.google.com/open?id=1-z- iKk7_IvGKjhEblcPDlTA2II1GBFF4

我当前的构面截图

我当前的代码片段是:

require(ggplot2)
coralData<-read.csv("datasets.csv")
coralData$location<-as.factor(coralData$location)
coralData$value<-as.numeric(sub("%","",coralData$value))
coralData$year<-as.factor(coralData$year)
coralData$coralType<-as.factor(coralData$coralType)
ggplot(coralData, aes(year, value))+
  geom_point()+
  facet_wrap(coralType~location)+
  geom_smooth(aes(group = 1),
              method = "lm",
              color = "black",
              se = FALSE)

标签: r

解决方案


您应该使用dput()以允许我们复制您的数据 - 没有人会从谷歌驱动器链接下载数据以提供帮助。

正如@r2evans 所说,您可以使用因子重新排序 ggplot 图形的大部分方面,包括方面:

从 mtcars 中,假设我们想wt~mpg在 cyl 中按不同的级别进行拆分,但是按照 cyl 的降序重新排列构面。相应地使用 factor 函数和 levels 参数:

mtcars$cyl = factor(mtcars$cyl, levels=rev(unique(sort(mtcars$cyl))))
mtcars %>% ggplot(aes(x=wt, y=mpg)) + geom_point() + facet_grid(~cyl)

在此处输入图像描述


推荐阅读