Есть ли способ добавить дату, связанную с идентификатором, в мой график Plotly? - PullRequest
0 голосов
/ 28 января 2020

У меня есть набор данных, данные со следующими значениями:

   ID                TIME                         Duration   
    A                12/18/2019 4:45:10 AM        1 sec
    A                12/18/2019 9:06:59 PM        0 sec                    
    B                12/19/2019 4:14:13 AM        7 sec
    B                12/19/2019 4:14:20 AM        0 sec
    A                12/18/2019 4:45:11 AM        0 sec

У меня есть 3 столбца, который состоит из идентификатора, ВРЕМЕНИ и Длительности. Я бы sh сгруппировал по идентификатору, а также по времени и построил график длительности идентификатора, используя график. Пока все работает отлично, у меня просто проблемы с добавлением времени к столбцам на графике. Я включил в этот пост число pi c.

   ID                TIME                         Duration   
    A                12/18/2019 4:45:10 AM        1 sec
    A                12/18/2019 9:06:59 PM        0 sec
    A                12/18/2019 4:45:11 AM        0 sec                    
    B                12/19/2019 4:14:13 AM        7 sec
    B                12/19/2019 4:14:20 AM        0 sec
   df1<-df %>% group_by(ID) %>%
   mutate(Duration.order = sum(as.numeric(Duration))) %>%
   ungroup() %>%
   mutate(ID.order = reorder(ID, Duration.order))
 plot_ly(data = df1,
 x = ~ID.order,
 y = ~Duration,
 name = "Title",
 type = "bar",
 orientation = 'v',
 order = "ascending") %>%
 layout(title = "Time Graph",
 xaxis = list(title = "Message ID", tickangle = -45),
 yaxis = list(title ="Time in Seconds"))

Однако я хотел бы также добавить дату, связанную с идентификаторами, в этот график. Я все еще работаю над этим.

enter image description here

Данные: структура df1

ID = C ("A", "A", "B", "B", "A")

Date = C ("12/18/2019 4:45:10 AM", "12/18/2019 9:06:59 PM",
"12/19/2019 4:14:13 AM", "12/19/2019 4:14:20 AM",
"12/18/2019 4:45:11 AM")

 Duration = structure (C (1, 0, 7,0, 0)
 class = "difftime", units = "secs"

1 Ответ

1 голос
/ 29 января 2020

С предоставленными данными, внесены изменения. Это сделает hovertext значениями Date. Если вы хотите, чтобы он произносил идентификационный номер, попробуйте изменить на «name = ~ ID»

ID = c("A", "A", "B", "B", "A")

Date = c("12/18/2019 4:45:10 AM", "12/18/2019 9:06:59 PM", "12/19/2019 4:14:13 AM", "12/19/2019 4:14:20 AM", "12/18/2019 4:45:11 AM")

Duration = c(1, 0, 7,0 , 0)

df1 <- data.frame(ID, Date, Duration)


plot_ly(data = df1,
        x = ~ID,
        y = ~Duration,
        text = ~Date,
        hovertemplate = paste('%{text}'),
        name = "Title",
        type = "bar",
        orientation = 'v',
        order = "ascending") %>%
  layout(title = "Time Graph",
         xaxis = list(title = "Message ID", tickangle = -45),
         yaxis = list(title ="Time in Seconds"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...