2016-08-12 4 views
0

これは非常にシンプルなはずですが(私は思う)、何らかの理由でこれを動作させることはできません。私はこのようなデータを持っている:Plotly R:カスタムxaxisの日付範囲を作成することはできません

df 
      x y 
1 2016-08-12 1 
2 2016-08-13 2 
3 2016-08-14 3 
4 2016-08-15 4 
5 2016-08-16 5 

str(df) 
'data.frame': 5 obs. of 2 variables: 
$ x: Date, format: "2016-08-12" "2016-08-13" ... 
$ y: int 1 2 3 4 5 

次のように私はplotly使用していますが、それはx軸が私の指定したカスタム値の範囲で調整していません。私はこのような数値データがある場合、一方

library(plotly) 
plot_ly(df, x = x, y = y) %>% layout(xaxis = list(range = c(as.Date('2016-08-01'), as.Date('2016-08-31')))) 

:代わりに、データの範囲を使用しています

df 
    x y 
1 1 1 
2 2 2 
3 3 3 
4 4 4 
5 5 5 

そして、このようなカスタム範囲を指定し、それが正常に動作します:

plot_ly(df, x = x, y = y) %>% layout(xaxis = list(range = c(-5, 10))) 

データ範囲の作成には何が欠けていますか? (太字は私が追加した)https://plot.ly/r/reference/#layout-xaxis-rangeから引用

答えて

2

範囲(リスト)は、この軸の範囲を設定します。軸typeが "log"の場合は、希望の範囲のログを取る必要があります(たとえば、 を1から100に設定し、範囲を0から2に設定する)。 typeの軸が「日付」の場合、日付を ミリ秒(1970年1月1日以降のミリ秒数)でunix時刻に変換する必要があります。 の例では、1970年1月1日から11月4日までの日付範囲を2012年12月15日に に設定するには、0から1380844800000.0の範囲を設定します。各リストの名前は、 以上です。

だから、あなたはミリ秒単位でUNIX時間にあなたの日付を変換することができます:

plot_ly(df, x = x, y = y) %>% 
    layout(xaxis = list(
     range = 
      c(as.numeric(as.POSIXct("2016-08-01", format="%Y-%m-%d"))*1000, 
       as.numeric(as.POSIXct("2016-08-31", format="%Y-%m-%d"))*1000), 
     type = "date")) 
関連する問題