ggplot:如何指定多个箱线图的垂直顺序?

发布于 2024-09-13 14:25:39 字数 319 浏览 9 评论 0原文

我想更改下图中医院的堆叠顺序,因此#1 位于顶部,#4 位于底部。

生成的

ggplot(survey,aes(x=hospital, y=age))+geom_boxplot()+coord_flip()+xlab("")+ylab ("\nPatient Age")

该图是用自上而下的顺序 ,我需要与现在相反的顺序。我不知道为什么会变成现在这个样子。 “医院”栏是一个重要因素。

非常感谢!

替代文字

I would like to change the stacking order of hospitals in the diagram below so #1 is at the top and #4 at the bottom.

The diagram was produced with

ggplot(survey,aes(x=hospital, y=age))+geom_boxplot()+coord_flip()+xlab("")+ylab ("\nPatient Age")

and I need the top->down order to be the reverse of what is now. I'm not sure why it comes the way it does now. The 'hospital' column is a factor in case it matters.

Many thanks!

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仅此而已 2024-09-20 14:25:39

你有几个选择。最简单的方法就是添加

p + scale_x_reverse()

到情节中。您还可以反转因子的级别

relevel(survey$hospital, rev(levels(survey$hospital))) -> survey$hospital

,或者,您可以使用 xlim() 手动确定所需框的顺序

p + xlim("Hospital #4","Hospital #3","Hospital #2","Hospital #1")

You have a few options. The easiest would be to add

p + scale_x_reverse()

to the plot. You could also reverse the levels of the factor

relevel(survey$hospital, rev(levels(survey$hospital))) -> survey$hospital

Or, you could determine the order you want the boxes by hand with xlim()

p + xlim("Hospital #4","Hospital #3","Hospital #2","Hospital #1")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文