r Не удается заставить xaxis tickmode = "array" работать на даты - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь заставить 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"))

Я обнаружил, что различные посты говорят, что только заговор понимает даты в миллисекундной форме (кто знал?). Приведенный выше код работает, если я заменяю range = для tickvals =. Я не нашел способа повлиять на отображаемые даты, используя tickmode = "array". Предложения с благодарностью.

1 Ответ

0 голосов
/ 14 апреля 2020

Добро пожаловать в stackoverflow!

Ожидаемый результат мне не ясен, но я думаю, вы ищете ticktext.

См. schema() для получения дополнительной информации.

Редактировать : Я подал проблему здесь .

Однако, есть обходной путь - Пожалуйста, проверьте следующее:

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))

Result

...