2017-09-05 82 views
0

我使用R和ggplot2構建數據可視化,它將使用我數據集的特定列(稱爲MthYr)中的值作爲其x軸值。 MthYr列是從另一列導出的,該列是名爲Date的日期列。的提取物如下所示:將列的值按特定順序排序的最有效方法是什麼?

Date   MthYr 
2014-06-05  Jun 2014 
2014-07-30  Jul 2014 
...   ... 
2017-08-03  Aug 2017 

數據集來自一個CSV文件和MthYr列是一個文本列。

我需要在ggplot2中創建一個圖表,它將在x軸上使用MthYr的值。我希望值進行正確排序,從2014年6月至8月2017年

回答這個問題計算器似乎確實提供了一個解決方案,但它是乏味的順序明確寫下來,從2014年6月至2017年8月: How to sort a character vector according to a specific order?

有沒有另一種更有效的方法可以做到這一點?

+2

您將需要確保您的日期列是一個日期對象,用於'scale_x_date'工作。您可以使用'as.Date'和格式參數將對象強制轉換爲日期。你的ggplot看起來像這樣:'ggplot(data,aes(x = MthYr,y = some_variable)+ geom_point()+ scale_x_date(date_breaks =「1 month」,date_labels =「%M」)' –

+0

因爲你有月另一種解決方法是在某一天粘貼部分日期,比如'1',例如'as.Date(paste(「1」), ,「2014年6月」),「%d%b%Y」)' –

回答

2

說你的情節是p。使用:

p + scale_x_date(date_breaks = "1 month", date_labels = "%M") 

您可能還想讀this documentation。 :)

+0

如果我理解的很好,我只需要使用我的數據集中的日期列並相應地進行格式化 – user3115933

+0

這是正確的。是你的x軸**,你只需將「layer」scale_x_date(...)添加到ggplot對象上告訴ggplot,「好的,所以我的x軸是一個日期向量,現在我添加這個尺度,並指定日期的位置,以及它們如何標記。「 –

相關問題