首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ggplot2 R中改变y轴的顺序?

问如何在ggplot2 R中改变y轴的顺序?
EN

Stack Overflow用户
提问于 2022-05-01 20:20:25
回答 1查看 679关注 0票数 0

我试图在R中创建一个geom_density_ridges_gradient()图,并希望按发布的时间顺序(数据中的一个单独变量)对y轴进行排序。我如何编辑我的ggplot()命令来实现这一点?这是我目前拥有的,附加的是输出。或者,为了简单起见,我如何手动排序y轴类别?

代码语言:javascript
复制
ggplot(ts, aes(x = danceability, y = album_name)) +
  geom_density_ridges_gradient(scale = .9) +
  theme_light() +
  labs(title = "Danceability by Albums",
       x = "Danceability",
       y = "Album Name")

图输出

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-01 20:36:41

如果要对ts中的y排序的列称为release_date,则可以使用decreasing=T尝试reorder()

代码语言:javascript
复制
ggplot(ts, aes(x = danceability, y = reorder(album_name, release_date,decreasing=T)) +
  geom_density_ridges_gradient(scale = .9) +
  theme_light() +
  labs(title = "Danceability by Albums",
       x = "Danceability",
       y = "Album Name")

虽然没有提供任何数据,但我们可以在这里看到这一点:

代码语言:javascript
复制
set.seed(123)
data = data.frame(y=rep(letters[1:3],100), x=rnorm(300), o=rep(c(1,3,2),100))

gridExtra::grid.arrange(
  ggplot(data, aes(x,y)) + geom_density_ridges_gradient(scale=0.9) + ggtitle("Unordered"),
  ggplot(data, aes(x,reorder(y,o,decreasing=T))) + geom_density_ridges_gradient(scale=0.9) + ggtitle("Ordered")
)

​

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72080140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档