2016-11-11 58 views
0

我有這個數據幀的開始和結束日期水平線,對於各個因素

ses <- data.frame("Sport"=c("NBA", "NFL", "MLB", "NHL"), 
        "reg_ses_start"=(as.Date(c("2016-10-25", "2016-09-08", "2016-04-03", "2016-10-12"))), 
        "reg_ses_end"=as.Date(c("2017-04-12","2017-01-01", "2016-11-02", "2017-04-09"))) 

我想顯示開始和結束日期與水平線每項運動。我想爲此使用ggplot,但無法真正瞭解如何在x軸上添加兩個點。

+1

你有什麼嘗試?你有沒有水平線的情節?您是否知道[this](http://docs.ggplot2.org/current/geom_abline.html)幫助頁面? – Llopis

回答

0

你想要這樣的東西嗎(如果需要,可以改變x/y軸標籤)?

library(scales) 
ses$SportID <- 1:4 
ggplot() + 
    geom_segment(data = ses, aes(x = reg_ses_start, y = SportID, xend = reg_ses_end, yend = SportID, col= Sport), size = 2)+ 
    scale_x_date(breaks=date_breaks("5 days")) + 
    xlab('Time') + 
    theme(axis.text.x = element_text(angle=90, vjust = 0.5)) 

enter image description here

1

我第一次使用as.POSIXct格式化日期:

ses <- data.frame(Sport = ses$Sport, 
      start = as.POSIXct(ses$reg_ses_start, format="%Y-%m-%d"), 
      end = as.POSIXct(ses$reg_ses_end, format="%Y-%m-%d")) 

可以使用geom_rect

library(ggplot2) 
ggplot() + geom_rect(data=ses, aes(xmin=start, xmax=end, 
           ymin=Sport, ymax=Sport, color=Sport),size=10) 

enter image description here

+0

正是我在找的東西。萬分感謝 – samot79

相關問題