我试图在R中创建一个geom_density_ridges_gradient()图,并希望按发布的时间顺序(数据中的一个单独变量)对y轴进行排序。我如何编辑我的ggplot()命令来实现这一点?这是我目前拥有的,附加的是输出。或者,为了简单起见,我如何手动排序y轴类别?
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")发布于 2022-05-01 20:36:41
如果要对ts中的y排序的列称为release_date,则可以使用decreasing=T尝试reorder()
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")虽然没有提供任何数据,但我们可以在这里看到这一点:
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")
)

https://stackoverflow.com/questions/72080140
复制相似问题