2016-11-03 8 views
2

私は、イベントが赤い垂直線としてマークされている時間軸をプロットするソリューションを探しています。私はそのようなものを見つけられませんでした:イベントの単純な時間軸をプロット

enter image description here (赤線の高さが等しくなければなりません)

データがタイムスパンの間に赤の文字列としてプロットされるべきUNIXタイムスタンプのリストだけです。

ggplotを使ってプロットする方法は?

+0

が、私はR.ではなく、Pythonで最適なツールを知らない、あなたは見つけるだろう "seaborn" のパッケージの中で最も:http://seaborn.pydata.org/tutorial/distributions。 html#plotting-univariate-distributions – Rockbar

+3

geom_hline(yintercept = 0)+ geom_segment(col = 0、yend = 1、xend = hp、yend = 1) = "red")+ theme_classic() ' – zx8754

+0

ありがとうございます! mtcarsのデータがありますか?これは、どのように動作するかを理解するのに役立ちます – geronimo678

答えて

2

まず、ここではいくつかのサンプルの日付は、次のとおりです。

sampleDates <- 
    sample(seq(as.Date("2016-01-01") 
      , as.Date("2016-12-31") 
      , 1) 
     , 60) 

はその後、ここzx8754さんのコメント@からの出発点の拡張である(注:mtcarsは組み込みデータセットです)。ここでは、凡例に縦線を付けることができるので(たとえば、行の代わりに)矢印を追加します。たとえば、行をイベントタイプで塗りつぶす場合は、geom_linerangeを使用します。 theme_minimalのすべてが表示オプションをシフトするだけで、よりきれいになります。

ggplot() + 
    geom_segment(
    aes(x = min(sampleDates) - 10 
     , xend = max(sampleDates) + 20 
     , y = 0 
     , yend = 0) 
    , arrow = arrow() 
) + 
    geom_linerange(
    aes(x = sampleDates 
     , ymin = -1 
     , ymax = 1) 
    , col = "red") + 
    xlab("Sample Date") + 
    theme_minimal() + 
    theme(axis.text.y = element_blank() 
     , axis.title.y = element_blank() 
     , panel.grid.major.y = element_blank() 
     , panel.grid.minor.y = element_blank() 
     ) + 
    scale_x_date(date_breaks = "1 month" 
       , date_labels = "%Y\n%b-%d") 

enter image description here

関連する問題