【问题标题】:r Plotly can't get xaxis tickmode="array" working for datesr Plotly 无法让 xaxis tickmode="array" 为日期工作
【发布时间】:2020-04-11 14:40:25
【问题描述】:

我正在尝试让 xaxis tickmode="array" 为绘图的日期工作。

这是一个例子:

x <- as.Date(c("2016-08-12", "2016-08-13", "2016-08-14", 
               "2016-08-15", "2016-08-16"))
y <- c(1, 2, 3, 4, 5)
df <- data.frame(x,y)

str(df)

plot_ly(df, x = x, y = y) %>%
layout(xaxis = list(
  tickmode = "array",
  tickvals =
    c(as.numeric(as.POSIXct("2016-08-12", format="%Y-%m-%d"))*1000,
      as.numeric(as.POSIXct("2016-08-16", format="%Y-%m-%d"))*1000),
  type = "date"))

我发现各种帖子说 plotly 只理解毫秒形式的日期(谁知道?)。如果我用 range= 代替 tickvals=,上面的代码就可以工作。我还没有找到任何方法来影响使用 tickmode = "array" 显示的日期。建议非常感谢。

【问题讨论】:

    标签: r layout plotly axis-labels r-plotly


    【解决方案1】:

    欢迎使用 stackoverflow!

    我不清楚预期的结果,但我猜你正在搜索ticktext

    更多信息请参见schema()

    编辑:我提交了一个问题here

    但是,这里有一个解决方法 - 请检查以下内容:

    library(plotly)
    
    df <- data.frame(x = c("2016-08-12", "2016-08-13", "2016-08-14", 
                           "2016-08-15", "2016-08-16"), index = 1:5, y = 1:5)
    
    plot_ly(df, x = ~index, y = ~y, type = "scatter", mode = "markers") %>%
      layout(xaxis = list(
        tickmode = "array",
        tickvals = ~index,
        ticktext = ~x))
    

    【讨论】:

    • 抱歉不清楚我在寻找什么。我只想显示两个日期,2018-08-12 和 2018-08-16(在我的实际问题中,我想显示更多不规则间隔的日期)。我不希望切换到新的 x 坐标系(索引),因为此图将使用 x 轴上的日期与其他图表组合。
    • 感谢您的澄清。直接使用日期轴似乎不起作用 - 这就是我发布解决方法的原因,请参阅上面的编辑。我为此在 GitHub 上提交了issue
    • 感谢您对这个问题的洞察!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多