代码之家  ›  专栏  ›  技术社区  ›  Jin.w.Kim

如何反转x轴(数字)的顺序,该顺序也适用于图形中的数据点?

  •  0
  • Jin.w.Kim  · 技术社区  · 3 年前

    我想问一下,如何反转x轴的顺序以及图形的方向?

    cv<- rep(c("cv1","cv2"), each=5)
    value<- c(50,40,30,20,10,45,38,26,22,17)
    index<- rep(c(5,15,27,36,45), each=2)
    dataA<- data.frame(cv, value, index)
    

    我生成了线性图

    ggplot(data=dataA, aes(x=index, y=value))+
      geom_smooth(aes(fill=cv), method=lm, level=0.95, se=FALSE, linetype=1, size=0.5,
      color="Black", formula=y~x) +
      geom_point (aes(shape=cv, fill=cv), col="Black", size=3) +
      scale_x_continuous(breaks = seq(-0, 60, 10), limits = c(0,60)) + 
      scale_y_continuous(breaks = seq(0,70,10), limits = c(0,70)) +
      labs(x="Environmental Index", y="Kernel number") +
      theme_grey(base_size=15, base_family="serif")+
      theme(legend.position= 'none',
      axis.line= element_line(size=0.5, colour="black")) +
      windows(width=5.5, height=5)
    

    enter image description here

    这里,我想颠倒x轴的顺序,所以60排在第一位。

    我更改了代码

    scale_x_continuous(breaks = seq(-0, 60, 10), limits = c(0,60))  
    

    scale_x_continuous(breaks = seq(-0, 60, 10), labels = rev(seq(-0, 60, 10)), limits = c(-0, 60)) 
    

    然后我有了这个图表

    enter image description here

    如果x轴按降序更改,则线方向应以正向方式更改,但此处仅更改了x轴顺序。

    你能告诉我怎么解决这个问题吗?

    谢谢

    2 回复  |  直到 3 年前
        1
  •  1
  •   Jahi Zamy    3 年前

    使用 scale_x_reverse(limits = c(60,0)) 您还可以删除其他scale\u x呼叫

        2
  •  0
  •   Jin.w.Kim    3 年前

    多亏了贾希的回答,我解决了这个问题。

    scale_x_reverse(limits = c(60,0), breaks= seq(60, 0, by = -10))
    

    如果我们使用上述代码,我们可以反转x轴的顺序,也可以将其应用于图形中的数据点。要调整x轴的单位,请将 breaks= seq(60, 0, by = -10) 在…内 scale_x_reverse() 回想起单位应为负值(即-10)

    推荐文章