2017-03-22 134 views
2

我想在ggplot2中繪製一個數字矢量與白天(%H:%M)的散點圖。在ggplot2中繪製白天(無日期)

我明白

as.POSIXct(dat$daytime, format = "%H:%M") 

是格式化我timedata方面要走的路,但輸出矢量仍將會包含一個日期(今天的日期)。因此,軸標記將包括日期(3月22日)。

ggplot(dat, aes(x=as.POSIXct(dat$daytime, format = "%H:%M"), y=y, color=sex)) + 
geom_point(shape=15, 
position=position_jitter(width=0.5,height=0.5)) 

image of the plot output

有擺脫之日起產品總數,尤其是在劇情軸的方法嗎? (所有的信息我已經在這個回答中似乎是指舊版本ggplot與現已解散DATE_FORMAT參數)

+0

你嘗試使用'scale_x_continuous(標籤= NULL)'? –

+1

'date_format()'現在在'scales'包中 – GGamba

+0

我認爲'scale_x_continuous'在POSIXct向量上不起作用,因爲它會產生一個錯誤信息:'as.POSIXct.numeric(value)中的錯誤:'origin'muss angegeben werden' –

回答

2

您可以到scale_x_datetime()labels參數提供了功能或使用date_label參數:

# create dummy data as OP hasn't provided a reproducible example 
dat <- data.frame(daytime = as.POSIXct(sprintf("%02i:%02i", 1:23, 2 * (1:23)), format = "%H:%M"), 
       y = 1:23) 
# plot 
library(ggplot2) 
ggplot(dat, aes(daytime, y)) + geom_point() + 
    scale_x_datetime(labels = function(x) format(x, format = "%H:%M")) 

編輯:或者,更簡潔,您可以使用date_label參數(感謝aosmithsuggestion)。

ggplot(dat, aes(daytime, y)) + geom_point() + 
    scale_x_datetime(date_label = "%H:%M") 

enter image description here

+1

或者使用'date_labels'參數作爲快捷方式,'date_labels =「%H:%M」'。 – aosmith

+0

非常感謝! 現在我想知道這個線程是否會成爲搜索特定編碼問題時我經常發現的那些_stackoverflow-「top 1 google搜索結果」之一。# '#創建虛擬數據,因爲OP沒有提供了一個可重複的例子' 好吧,我明白了,下次將包含虛擬數據的代碼:) –