如何避免使用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
而不是在绘图中指定范围,而是获取数据的一部分,并使用默认范围进行绘图。例如,
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类型更为安全。