Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot:如何指定多个箱线图的垂直顺序?_R_Ggplot2_Boxplot - Fatal编程技术网

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

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

我想更改下图中医院的堆叠顺序,以便#1位于顶部,而#4位于底部

这张图表是用计算机绘制的

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")