R Shiny XTS - Изменить имя всплывающей подсказки по умолчанию с помощью ggplot - PullRequest
1 голос
/ 06 апреля 2020

У меня есть объект с датами в качестве значений, я использую приложение и для отображения результата. Но я хочу изменить имена подсказок по умолчанию, когда мышь находится на линии.

От: index: 2020-03-19 value: 70

До: Date: 2020-03-19 Cantidad: 70

Код для XTS:

data<-rnorm(10)
    dates <- seq(as.Date("2016-01-01"), length =10, by = "days")
    xtsMyData <- xts(x = data, order.by = dates)

Участок:

r <- ggplot(tidy(xtsMyData), aes(x=index,y=value, color=series, type = 'scatter', mode = 'lines')
    ) + geom_line(size=2)

Результат: Default values

Я использую следующий код:

 r <- ggplot(tidy(xtsMyData), aes(x=index,y=value, color=series, type = 'scatter', mode = 'lines')
    ) + geom_line(size=2)

    return(ggplotly(r, tooltip = **c("x","y", "series" )**) %>% plotly::config(displayModeBar = T)  %>%
             layout(legend = list(orientation = "h", x = 0.4, y = -0.2)))

И результат:

New result, it's a bit best

Как изменить подсказку? Могу ли я добавить слова? Я пытался вставить ("Даты", "x"), но не работает.

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 06 апреля 2020

Вы можете использовать text в style для изменения текста при наведении.

Объект plotly будет иметь значения, доступные через список, как показано ниже. Значения даты необходимо будет преобразовать в as.Date.

Редактировать : код включает в себя полностью блестящее приложение в виде демонстрации.

library(xts)
library(shiny)

data<-rnorm(10)
dates <- seq(as.Date("2016-01-01"), length =10, by = "days")
xtsMyData <- xts(x = data, order.by = dates)

ui <- fluidPage(
  plotlyOutput("myplot")
)

server <- function(input, output, session) {
  output$myplot <- renderPlotly({
    r <- ggplot(tidy(xtsMyData), aes(x=index,y=value, color=series, type = 'scatter', mode = 'lines')) + 
      geom_line(size=2)

    r <- ggplotly(r) %>% 
      plotly::config(displayModeBar = T) %>%
      layout(legend = list(orientation = "h", x = 0.4, y = -0.2)) 

    r %>%
      style(text = paste0("Date:", as.Date(r$x$data[[1]]$x), 
                          "</br></br>", 
                          "Cantidad:", r$x$data[[1]]$y))
  })
}

shinyApp(ui, server)

Участок

plotly plot with hover text modified

...