Inserir campo não mapeado ggplot em tooltip do ggplotly

Bom dia, gostaria de ajuda para colocar uma variável que não está mapeada no ggplot no tooltip do plotly.

A base de dados usada diamonds está disponível no pacote ggplot e possui os campos:

carat cut       color clarity depth table price     x     y     z
   <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
 1  0.33 Ideal     E     VVS1     61.8  57    1052  4.43  4.4   2.73
 2  0.74 Ideal     H     VS2      62.2  55    3178  5.83  5.81  3.62
 3  0.43 Ideal     G     VS1      61.6  55.1  1005  4.85  4.89  3   
 4  0.6  Ideal     G     VVS1     62.1  56    3001  5.42  5.43  3.37
 5  0.3  Ideal     D     SI2      62    56     426  4.31  4.34  2.68
 6  0.7  Fair      J     VVS1     67.6  54    1691  5.56  5.41  3.71
 7  0.72 Ideal     E     SI1      62.5  55    2897  5.69  5.74  3.57
 8  1.04 Very Good F     SI1      60.1  62    5290  6.54  6.6   3.95
 9  0.31 Premium   H     VVS2     62.4  58     802  4.31  4.28  2.68
10  0.41 Ideal     D     VS2      62.4  54    1076  4.78  4.74  2.97

Com o código abaixo, tenho o gráfico com o tooltip apresentando os valores dos campos price e depth. Como fazer para incluir no tooltip do ggplotly, por exemplo o campo cut?

dados <- diamonds %>% dplyr::sample_n(size = 200)

grafico <- ggplot(dados, aes(price, depth))+
  geom_point()+
  geom_smooth(method = "lm", se = FALSE)

plotly::ggplotly(grafico)

Obrigado!

Olá @rgcardos ,

Por padrão, o ggplotly() coloca na label todas as variáveis que estão mapeadas dentro do aes().

Então, um hack pode ser adicionar o parâmetro label=cut, por exemplo

library(magrittr)
library(ggplot2)
dados <- diamonds %>% dplyr::sample_n(size = 200)

grafico <- ggplot(dados, aes(price, depth, label = cut))+
  geom_point()+
  geom_smooth(method = "lm", se = FALSE)

plotly::ggplotly(grafico)

Created on 2021-04-11 by the reprex package (v2.0.0)

1 curtida