Plotly R - конвертировать метки yaxis из чисел в определенные времена или числа - PullRequest
0 голосов
/ 03 января 2019

Ниже вы увидите, что я создал коробочный график в Plotly местоположения, используя аналитику камеры. Я пытаюсь конвертировать метки по оси Y от 0 до 1400 раз. Таким образом, 0 будет 0000 или 00:00, 200 будет 0320 или 03:20, 400 будет 0640 или 06:40 и так далее до 1400, что будет 2320 или 23:20.

Шаблон - это действительно число, деленное на 60 (минут).

Мой код:

library('plotly')

df <- read.csv("BoxPlot.csv")

location_one <- df[df$Location == "location_one", ]

plot_ly(location_one, x = ~Date, y = ~Minutes, type = "box", name = 'Camera Activity') %>%
  add_trace(y = ~seven, 
            type = 'scatter', 
            mode = 'lines',
            line = list(color = 'rgba(255,0,0,0.8)'), 
            showlegend = FALSE) %>%
  add_trace(y = ~seventeen, 
            type = 'scatter', 
            mode = 'lines',
            fill = 'tonexty', 
            fillcolor='rgba(255, 0, 0, 0.4)', 
            line = list(color = 'rgba(255,0,0,0.8)'),
            name = 'Business Hours') %>%
  add_trace(y = ~six,
            type = 'scatter',
            mode = 'lines',
            line = list(color = 'rgba(255,0,255,0.8)'),
            showlegend = FALSE) %>%
  add_trace(y = ~endsix,
            type = 'scatter',
            mode = 'lines',
            fill = 'tonexty',
            fillcolor='rgba(255,0,255,0.4)',
            line = list(color = 'rgba(255,0,255,0.8)'),
            name = 'Extended Business Hours') %>%
  add_trace(y = ~starteighteen,
            type = 'scatter',
            mode = 'lines',
            line = list(color = 'rgba(255,0,255,0.8)'),
            showlegend = FALSE) %>%
  add_trace(y = ~eighteen,
            type = 'scatter',
            mode = 'lines',
            fill = 'tonexty',
            fillcolor='rgba(255,0,255,0.4)',
            line = list(color = 'rgba(255,0,255,0.8)'),
            showlegend = FALSE) %>%
  layout(title = " ",
         xaxis = list(title = "Date"),
         yaxis = list(autorange = "reversed", 
                      title = "Count"),
         margin = list(b = 190, l = 50))

Вот изображение, чтобы вы могли видеть макет:

Box Plot

1 Ответ

0 голосов
/ 03 января 2019

Возможно, есть лучший способ сделать это, но я добавил несколько вещей в "yaxis", и он сделал свою работу:

layout(title = "location_one",
       xaxis = list(title = "Date"),
       yaxis = list(autorange = "reversed", 
                    title = "Time", 
                    tickmode = "array",
                    nticks = 8,
                    tickvals = c(0,200,400,600,800,1000,1200,1400),
                    ticktext=c("00:00", "03:20", "06:40", "10:00", "13:20", "16:40", "20:00", "23:20")),
       margin = list(b = 190, l = 50))

y-axis labels

...