R:绘图时 x 轴上的字符而不是级别 #?

R: Character instead of level # on x axis when plotting?

我需要帮助在 x 轴上绘制月份名称,而不是指定月份的级别。我正在使用 "water year",因此 10 月被指定为 1 级,到 9 月结束时为 12 级。我相信这很容易,我只是不经常处理因素。谢谢!

研究完成: Plot a character vector against a numeric vector in R

R plotting, date on x axis

这是我的数据的简化示例

    Months<-c("Jan"=4,"Feb"=5,"Mar"=6,"Apr"=7,"May"=8,"Jun"=9,"Jul"=10,
    "Aug"=11,"Sep"=12,"Oct"=1,"Nov"=2,"Dec"=3)

    Data<-c(1,2,3,4,5,6,7,8,9,10,11,12)

    df<-data.frame(Months,Data)

  >df
      Months Data
  Jan      4    1
  Feb      5    2
  Mar      6    3
  Apr      7    4
  May      8    5
  Jun      9    6
  Jul     10    7
  Aug     11    8
  Sep     12    9
  Oct      1   10
  Nov      2   11
  Dec      3   12

    plot(Data~factor(Months), df,las=2)

这会将数据放在正确的位置和正确的月份,只是错误的标签。

我们可以在plot中使用xaxt = "n"然后用axis改变xaxis刻度标签

plot(Data ~ Months, transform(df, Months = match(row.names(df), 
                       month.abb)), las = 2, xaxt = "n", type = "b", col = "blue")
axis(1, at = seq_len(nrow(df)), row.names(df))

使用参数 plot xaxt = "n" 然后函数 axis.

plot(Data ~ factor(Months), df, las=2, xaxt = "n")
axis(1, at = factor(df$Months), label = row.names(df))