R ggplot:如何指定多个箱线图的垂直顺序?
我想更改下图中医院的堆叠顺序,以便#1位于顶部,而#4位于底部 这张图表是用计算机绘制的R ggplot:如何指定多个箱线图的垂直顺序?,r,ggplot2,boxplot,R,Ggplot2,Boxplot,我想更改下图中医院的堆叠顺序,以便#1位于顶部,而#4位于底部 这张图表是用计算机绘制的 ggplot(survey,aes(x=hospital, y=age))+geom_boxplot()+coord_flip()+xlab("")+ylab ("\nPatient Age") 我需要上下顺序与现在相反。我不知道为什么现在会这样。“医院”栏是一个重要的因素 非常感谢 您有几个选择。最简单的方法是添加 p + scale_x_reverse() 与情节有关。您还可以反转因子的级别 rel
ggplot(survey,aes(x=hospital, y=age))+geom_boxplot()+coord_flip()+xlab("")+ylab ("\nPatient Age")
我需要上下顺序与现在相反。我不知道为什么现在会这样。“医院”栏是一个重要的因素
非常感谢
您有几个选择。最简单的方法是添加
p + scale_x_reverse()
与情节有关。您还可以反转因子的级别
relevel(survey$hospital, rev(levels(survey$hospital))) -> survey$hospital
或者,您可以使用xlim()
从语义上讲,我认为第二种选择是最好的。它将数据形式的操作与绘图代码分离。第一个代码给出一个错误:错误:为scale_x_reverse提供了非连续变量。此外:警告消息:在Ops.factor(x)中:-对于factor没有意义,但第三个运行良好。我没有重新调整它们,因为如果我显示survey$hospital,它们已经按照自然顺序(1、2、3、4)进行了调整。我认为
scale\u x\u reverse
只适用于连续值。@RichieCotton,奇怪的是,为什么您更喜欢在绘图之前操纵数据帧-我的偏好是尽可能不破坏df,并在可能/合理的情况下在绘图中进行操纵。如果绘图代码有问题,我希望能够梳理原始df。@DaNiu通常需要绘制几次绘图,然后才能正确绘制。如果数据已经以正确的形式存在,则重新绘制会更快(而不是每次都重新调整)。更重要的是,将数据操作步骤与绘图步骤分离可以提高代码的可读性。
p + xlim("Hospital #4","Hospital #3","Hospital #2","Hospital #1")