2017-09-14 82 views
0

目前,我有這樣的情節,看起來像這樣:ggplot x軸麻煩

enter image description here

我不喜歡如何在x軸上有怪異的線/條。我懷疑這可能是因爲ggplot無法適應x軸上的所有540000個觀測值。下面是我用來繪製此代碼:

data %>% 
    ggplot() + 
    geom_point(aes(x = dates_df$date, y = Quantity)) + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) + 
    labs(x = "Invoice Date", y = "Quantity", title = "Quantity vs Invoice Date") 

我能做些什麼來擺脫/解決在x軸這個爛攤子?

+0

是'date'一個因素現在呢?如果是這樣,請考慮將其更改爲「日期」並將軸設置爲「scale_x_date」。即使使用了一個因子,也可以更改在x軸上顯示的中斷點數量。 – aosmith

+1

我的猜測是,你使用兩個單獨的數據框('data'和'dates_df')。爲什麼不把它們與'dplyr'中的'left_join'結合?這應該解決很多問題。否則,你可以使用'scale_x_ *',也許在這種情況下,它會是'scale_x_date()' –

+0

@aosmith'date'是一個字符。你如何將它改爲'日期' –

回答

0

正如在評論中告訴的那樣,在Date列中看起來很糟糕,並且您使用了兩個單獨的數據框。首先加入數據。我認爲他們都在列一些標識或其它鍵,像名:

library("dplyr") 
left_join(data,dates_df,by="id") 

日期也是一個字符作爲被提及。要將其更改爲Date,如果您尚未執行此操作,請使用as.Date函數。加入

data$date<- as.Date(data$date, "%m/%d/%Y") 

後,您可以在這裏找到其他日期格式:http://www.statmethods.net/input/dates.html

你說,有540 000觀察X軸。我的建議是將圖表分開爲獨特的一年。要做到這一點,使用ggplot內的facet_grid函數。

library(lubridate)  
ggplot(df, aes(x= df$date,y= df$Quantity))+ 
    geom_point() + 
    facet_grid(~year(df$date)) 

希望它能幫助:)