r - 如何通过特定键重新排序 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)
解决方案
您应该使用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)
推荐阅读
- javascript - 每次有人在 react.js 中加载页面时,提供 10 个不同的文本加载器
- reactjs - Fabric DetailsList 根据父行更改子行控件
- javascript - 仅当数据库有新记录时才重新加载 div
- mysql - 1台服务器,每个子域使用不同的数据库
- javascript - fullcalendar V3 如何添加 JET 上下文菜单
- javascript - mdast-util-to-markdown:防止列表项之间发生换行符?
- ada - Ada 和 GNATStudio 的路径问题
- javascript - IndexOf 方法未按预期工作 JAVASCRIPT
- python - 使用请求在 Python 中填写多步表单
- typescript - 打字稿:为什么 keyof Union 永远不会