如何避免在R plotly中打印丢失的日期

如何避免在R plotly中打印丢失的日期,r,plotly,R,Plotly,我需要绘制一个面积图,它包含财务数据,我正在使用plotly来这样做。 问题是,plotly具有检测时间序列格式的功能,甚至可以通过简单地延长一条直线直到下一个可用数据输入来绘制缺失的日期。 是否可以禁用此功能并仅绘制数据可用的时间序列 library(plotly) Datetime <- c( "2016-01-05 00:00:00", "2016-01-06 00:00:00", "2016-01-07 00:00:00",

我需要绘制一个面积图,它包含财务数据,我正在使用plotly来这样做。 问题是,plotly具有检测时间序列格式的功能,甚至可以通过简单地延长一条直线直到下一个可用数据输入来绘制缺失的日期。 是否可以禁用此功能并仅绘制数据可用的时间序列

library(plotly)

    Datetime <- c(
      "2016-01-05 00:00:00",
      "2016-01-06 00:00:00",
      "2016-01-07 00:00:00",
      "2016-01-08 00:00:00",
      "2016-01-11 00:00:00",
      "2016-01-12 00:00:00",
      "2016-01-13 00:00:00",
      "2016-01-14 00:00:00",
      "2016-01-15 00:00:00",
      "2016-01-18 00:00:00",
      "2016-01-19 00:00:00",
      "2016-01-20 00:00:00",
      "2016-01-21 00:00:00",
      "2016-01-22 00:00:00",
      "2016-01-25 00:00:00",
      "2016-01-26 00:00:00",
      "2016-01-27 00:00:00",
      "2016-01-28 00:00:00",
      "2016-01-29 00:00:00",
      "2016-02-01 00:00:00")
plotdata <- c(93763,110023,134873,138780,117038,117890,120025,140715,48567,87592,
              115852,145189,162258,121456,93643,128475,119310,105771,134946,90386)

volume_data <- data.frame(Datetime, plotdata)
plot_ly(volume_data, x = Datetime, y = plotdata, type = "bar")
library(plotly)

Datetime这里有一个替代方案,可以满足您的需求

p <- plot_ly(
  x = c("Jan 5", "March 5", "April 5"),
  y = c(20, 14, 23),
  name = "SF Zoo",
  type = "bar")
p %>% layout(xaxis = list(title="Date"), yaxis = list(title="Volume Data"))
p%布局(xaxis=list(title=“Date”)、yaxis=list(title=“Volume Data”))
在打印之前,只需转换日期时间列(如1月5日、3月5日…格式)


我找到了一个更简单的解决问题的方法,我想我会把它作为一个可能对其他人也有帮助的答案发布出来。 如果您在布局中添加一个参数(如此处所示),它将非常有效

p <- plot_ly(volume_data, x = Datetime, y = plotdata, type = "bar")
p <- layout(p, xaxis = list(type = "category"))

p现在似乎有一个在plotly中设置rangebreaks的选项:

以下代码来自他们的网站

library(plotly)

df <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
fig <- plot_ly(
  type = "scatter",
  x = as.Date(df$Date, format= "%Y-%m-%d"), 
  y = df$AAPL.High,
  name = 'AAPL High',
  mode = "markers",
)
fig <- fig %>%
  layout(
    title = "Time Series with Custom Date-Time Format",
    xaxis = list(
      type = "date",
      range=c('2015-12-01', '2016-01-15'),
      rangebreaks = list( 
        list(bounds=c("sat", "mon")),
        list(values=c("2015-12-25", "2016-01-01"))
      )
    )
  )
fig
library(plotly)

你的例子是不可复制的。请共享您使用的代码和数据。更多信息。我为一个拙劣的问题道歉。我现在已经添加了可复制的数据。谢谢你,作为一个解决办法,你可以用数字/整数代替日期,并添加自定义标签。你是对的,这可能是我最后的选择。但是,我将无法在x轴上看到相应的日期!还是有解决办法?!