Как я могу избавиться от всплывающих подсказок по умолчанию с помощью Plotly?

#r #ggplot2 #shiny #plotly

#r #ggplot2 #блестящий #plotly

Вопрос:

Я некоторое время использовал ggplot, пока не наткнулся на библиотеку Plotly и не начал использовать ее для своих графиков. Я все еще использую функции ggplot для создания графика и в конце функцию ggplotly для его преобразования.

Я использую geom_tile и слой geom_text на своем графике для создания тепловой карты. Я устанавливаю свойство «text» в geom_tile на текст, который я хочу отобразить во всплывающей подсказке, и передаю tooltip=»text» в функцию ggplotly. Текст, который я хочу показать внутри прямоугольника, задан в слое geom_text с помощью свойства «label».

Когда график отображается, я могу видеть обе всплывающие подсказки по отдельности, одну с текстом, который я задал в свойстве text в geom_tile, а другая повторяет текст в свойстве label в слое geom_text.

Как я могу избавиться от этой последней всплывающей подсказки?

Заранее спасибо!

Вот мой код:

 gg<-ggplot(dataframe, aes(x=varX,y=varY)) 
    geom_tile(aes(fill=cm,text=paste("#",casos))) 
    geom_text(aes(label=cm,size=casos),family = "arial", color="#111111") 
    scale_fill_gradient2(low="#DD3333",mid="#EEEE99",high="#00AA00")  
    labs(x="varX",y="varY",fill="CM")  scale_size(range = c(2.5, 5),guide='none')  
    theme(text=element_text(family = "arial", color="#666666", size=11) ,title=element_text(family = "arial", color="#666666", face="bold", size=12), axis.text=element_text(family = "arial", color="#666666", size=9),axis.text.x=element_text(angle=330))
ggplotly(gg, tooltip="text")
  

Ответ №1:

ggplotly() автоматически создаст текст при наведении курсора — это часть его «магии». Для перезаписи вам придется использовать plotly_build() .

 library(plotly)
library(ggplot2)

gg <- ggplot(mtcars, aes(x = cyl, y = gear))  
  geom_tile(aes(fill = mpg))

pb <- plotly_build(gg)

# check structure of pb with str(pb) and see that the text element is a matrix
mtext <- as.character(seq(1,9,1)))

pb$data[[1]]$text <- matrix(mtext, 3, 3)

pb