2017-08-10 120 views
0

我需要帮助绘制x轴上的月份名称,而不是分配月份的级别。我正在做一个“水年”,所以10月份被分配到1级,到9月份达到12级。我确信这很容易,我只是不经常处理因素。谢谢!R:绘图时x轴上的字符而不是水平号?

研究完成: 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) 

这使数据在正确的地方与正确的月份,只是错标签的一个简单的例子。

回答

0

我们可以在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)) 
+1

谢谢,这工作就像一个魅力! – Chabo

0

使用参数plotxaxt = "n",然后运作axis

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

这个轴功能工作得更好,因为它保持了正确的月份顺序。 – Chabo