Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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-如何指定y轴的顺序_R_Ggplot2 - Fatal编程技术网

R ggplot-如何指定y轴的顺序

R ggplot-如何指定y轴的顺序,r,ggplot2,R,Ggplot2,我试图创建一个情节在R,它非常简单,但这已经困扰了我好几天,我不能让它工作。当我使绘图R按字母顺序排列y轴时,如何指定所需的顺序。使用以下示例: x = c("High ind.", "High sp.", "Mid ind.", "Mid sp.", "Low ind.", "Low sp.") y = c(4.6, 2.3, 5.5, 2.2, 12.6, 3) sd = c(3.2, 1.2, 4.4, 1.5, 5.9, 1.5) qplot(x,y, xlab="Water lev

我试图创建一个情节在R,它非常简单,但这已经困扰了我好几天,我不能让它工作。当我使绘图R按字母顺序排列y轴时,如何指定所需的顺序。使用以下示例:

x = c("High ind.", "High sp.",  "Mid ind.", "Mid sp.", "Low ind.", "Low sp.")
y = c(4.6, 2.3, 5.5, 2.2, 12.6, 3)
sd = c(3.2, 1.2, 4.4, 1.5, 5.9, 1.5)

qplot(x,y, xlab="Water level", 
      ylab="mean number of ind. and sp. with standard deviations") + 
   geom_errorbar(aes(x=x, ymin=y-sd, ymax=y+sd, width=0.2), color="blue")

我希望y轴上的顺序如下:高、中、低。但是R会自动按字母顺序排列。我已经尝试了很多方法来解决这个问题,但是它们都是针对更复杂的大型数据集,并且不能处理如此简单的数据集。必须有一种简单的方法来解决此问题。

使用系数并手动指定级别顺序:

lv <- c("High ind.", "High sp.",  "Mid ind.", "Mid sp.", "Low ind.", "Low sp.")
x <- factor(lv,levels = lv)

y = c(4.6, 2.3, 5.5, 2.2, 12.6, 3)
sd = c(3.2, 1.2, 4.4, 1.5, 5.9, 1.5)

dat<-data.frame(x, y, sd)

qplot(x,y, data=dat, xlab="Water level", ylab="mean number of ind. and sp. with standard 
deviations")+geom_errorbar(aes(x=x, ymin=y-sd, ymax=y+sd, width=0.2), color="blue")

lv您不需要有序因子;你只需要在所需的顺序中指定的级别。谢谢,我已经尝试过这样做,也尝试过上面的方法,但是这似乎不起作用,这就是为什么我决定在这里询问。。。我还可以尝试其他选项/代码吗?@ZRoss请注意,有序因子是不必要的,而且您的原始版本实际上是错误的;即使指定了
ordered=TRUE
factor
中的默认值是使用按字典顺序排序的唯一值设置级别。因此,如果您没有显式地将某些内容传递给
级别
,您将再次按字母顺序获取它们。以下所有内容都是重复的:、和。它们都引用了相同的技术:顺序是通过使用一个因子和指定级别的顺序来控制的。嗨,乔兰,谢谢你,我已经看完了这些,并且非常努力地使用了它们使用的技术,但是这似乎对我不起作用,我真的已经尝试了好几天了。。。每次我尝试手动设置级别时,它都会按字母顺序生成相同的图形,或者出现错误消息。。这就是为什么我要检查这不是我特别做错的事情?我已经尝试了下面答案中的代码,但是仍然不起作用…下面的答案实际上是错误的,所以我修复了它。现在,它使用了与我提到的每个问题中详细描述的完全相同的技术,并生成了您想要的确切输出。