使用`layout.xaxis.range`时,第一个和最后一个观察结果被切成两半

问题描述 投票:0回答:1

如何避免使用layout.xaxis.range时将绘制的第一个和最后一个观察结果切成两半?

[使用修改为烛台图的标准plotly example(这分别是2015年12月1日和2015年1月15日的第一个和最后一个蜡烛)时,这变得非常明显:

library(plotly)

df <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
fig <- plot_ly(
  type = "candlestick",
  x     = ~df$Date,
  open  = ~df$AAPL.Open,
  high  = ~df$AAPL.High,
  low   = ~df$AAPL.Low,
  close = ~df$AAPL.Close
)
fig <- fig %>%
  layout(
    title = "Time Series with Custom Date-Time Format",
    xaxis = list(
      type = "date",
      range = c('2015-12-01', '2016-01-15')
    )
  )
fig

enter image description here

javascript r plotly r-plotly plotly.js
1个回答
0
投票

而不是在绘图中指定范围,而是获取数据的一部分,并使用默认范围进行绘图。例如,

df <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
df <- subset(df, Date >= "2015-12-01" & Date <= "2016-01-15")

fig <- plot_ly(
  type = "candlestick",
  x     = ~df$Date,
  open  = ~df$AAPL.Open,
  high  = ~df$AAPL.High,
  low   = ~df$AAPL.Low,
  close = ~df$AAPL.Close
)
fig <- fig %>%
  layout(
    title = "Time Series with Custom Date-Time Format",
    xaxis = list(
      type = "date"
    )
  )
fig

请注意,这是对日期进行基于字符的比较;由于您的数据采用YYYY-MM-DD格式,因此可以使用,但是通常在子设置之前将其转换为Date类型更为安全。

© www.soinside.com 2019 - 2024. All rights reserved.