libreria - r plotly geom_bar
Resaltar todos los valores de un grupo en el hover (1)
Asumir datos
library(ggplot2)
library(plotly)
set.seed(357)
xy <- data.frame(letters = rep(c("a", "b", "c"), times = 3),
values = runif(9),
groups = rep(c("group1", "group2", "group3"), each = 3))
letters values groups
1 a 0.9913409 group1
2 b 0.6245529 group1
3 c 0.5245744 group1
4 a 0.4601817 group2
5 b 0.2254525 group2
6 c 0.5898001 group2
7 a 0.1716801 group3
8 b 0.3195294 group3
9 c 0.8953055 group3
ggplotly(
ggplot(xy, aes(x = letters, y = values, group = groups)) +
theme_bw() +
geom_point()
)
Mi objetivo es, al pasar, resaltar todos los puntos que pertenecen al mismo grupo. Por ejemplo, al desplazarse sobre el punto en la esquina superior derecha, todos los puntos de este grupo (círculos) se volverán rojos. Se puede lograr algo similar utilizando layout(hovermode = "x")
pero solo si uno está interesado en resaltar todos los puntos en uno de los ejes. Me gustaría el mismo comportamiento para una variable personalizada distinta de x
, y
o closest
(que son modos de modo de hovermode
).
esto probablemente se adapte a tus necesidades
Data de muestra
set.seed(357)
xy <- data.frame(letters = rep(c("a", "b", "c"), times = 3),
values = runif(9),
groups = rep(c("group1", "group2", "group3"), each = 3))
conspirando
#create a SharedData object for use in the ggplot below, group by ''groups''
d <- highlight_key(xy, ~groups )
#create a normal ggplot to fit your needs, but use the SharedData object as data for the chart
p <- ggplot( d, aes(x = letters, y = values, group = groups)) + theme_bw() + geom_point()
#now ggplotly the newly created ggplot, and add text for the tooltips as needed
gg <- ggplotly( p, tooltip = "groups" )
#set the highlight-options to your liking, and plot...
highlight( gg, on = "plotly_hover", off = "plotly_deselect", color = "red" )
resultados de la trama