style(hoveron="fills") doesn't work with ggplotly() when there are multiple polygons with the same fill color
Personne n'a encore pris cette issue.
- Langage dominant
- R
- Étoiles
- 2.7k
- Forks
- 641
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
The following code based on the standard North Carolina shape-file fills counties by the values of BIR74, except that one county has been given an NA value for the variable.
library(ggplot2)
library(plotly)
library(sf)
nc_1 <-
st_read(system.file("shape/nc.shp", package = "sf"),
quiet = TRUE) %>%
mutate(BIR74 = ifelse(NAME == "Ashe", NA, BIR74)) %>%
mutate(tooltip_text = ifelse(is.na(BIR74),
paste0(NAME, " not reporting"),
paste0(NAME, " reports ", BIR74)))
p_1 <-
nc_1 %>%
ggplot() +
geom_sf(aes(fill = BIR74, text = tooltip_text))
ggplotly(p_1, tooltip = "text") %>%
style(hoveron = "fills")
The custom tooltip indicates the missing value (hover over Ashe County) as expected.
The following code sets BIR74 to NA for two counties:
nc_2 <-
st_read(system.file("shape/nc.shp", package = "sf"),
quiet = TRUE) %>%
mutate(BIR74 = ifelse(NAME %in% c("Ashe", "Alleghany"), NA, BIR74)) %>%
mutate(tooltip_text = ifelse(is.na(BIR74),
paste0(NAME, " not reporting"),
paste0(NAME, " reports ", BIR74)))
p_2 <-
nc_2 %>%
ggplot() +
geom_sf(aes(fill = BIR74, text = tooltip_text))
ggplotly(p_2, tooltip = "text") %>%
style(hoveron = "fills")
Hover over either Ashe or Alleghany and you get identical very long tooltips.
The output of plotly_json(p_2) indicates that Ashe and Alleghany have somehow been combined. See, e.g.:
json_2 <- plotly_json(p_2)
json_2$x$data %>%
as.character() %>%
RJSONIO::fromJSON() %>%
.$data %>%
.[[100]] %>%
.[1:3]
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Exécutez les deux exemples de North Carolina avec ggplotly(), tooltip = "text" et style(hoveron = "fills"), puis inspectez plotly_json(p_2) comme indiqué. Comparez la manière dont les cas avec un NA et deux NA représentent les données des polygones ; le travail est terminé lorsque Ashe et Alleghany affichent chacun leur propre tooltip au lieu d’un seul long tooltip combiné.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- r
- Domaine
- data-visualization
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100