R语言 我如何保持x值按照我为向量设置的顺序?

zpgglvta  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(102)

我想创建一个非常简单的实验数据的条形图:六个样本,每个样本有三个观测值。

pro<-c("Q","Q","Q",
         "E","E","E",
         "M","M","M",
         "F","F","F",
         "G","G","G",
         "P","P","P"
); as.factor(pro)

ges<-c(1000,
       1111,
       2222,
       1142,
       1111,
       1112,
       400,
       441,
       544,
       250,
       200,
       150,
       101,
       102,
       103,
       800,
       900,
       950
)

an <-data.frame(
  pro,
  rep=c(1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3,
        1,2,3),
  ges
);an; str(an)

stripchart(
  ges~pro,data=an,vert=T,
  pch=16,col="red",
  ylab="y axis", xlab="x axis",
  tck=.01,
  )

字符串

**总体上我对条形图100%满意。**我唯一想改变的是顺序。R不断地对我的x值进行排序,在这种情况下这是毫无意义的,因为我的实验属于q-e-m-f-g-p顺序。我发现了类似的主题,但是所有的都是如此的过于具体或者使用不同的包,比如ggplot。一定有一个简单的方法来强制矢量的原始顺序?!如果有人能帮我就太好了。

非常感谢提前!

jchrr9hc

jchrr9hc1#

从你的问题中我可以看出,你可以把一个矩阵中的pro变量改为一个因子,你可以指定你想要的顺序。
我把它加在你的绘图代码之前,并按照你的问题中指定的顺序得到了x轴标签。

## new code to order x-axis values
    an$pro = factor(an$pro, levels=c("Q", "E", "M", "F", "G", "P"))
    
    ## plot code from OP question
    stripchart(
      ges~pro,data=an,vert=T,
      pch=16,col="red",
      ylab="y axis", xlab="x axis",
      tck=.01,
    )

字符串

相关问题