2017-08-10 97 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