Comment choisir la variable à afficher dans l'info-bulle lors de l'utilisation de ggplotly?
J'ai un simple bloc de données:
seq <- 1:10
name <- c(paste0("company",1:10))
value <- c(250,125,50,40,40,30,20,20,10,10)
d <- data.frame(seq,name,value)
Et je veux tracer de cette façon:
require(ggplot2)
ggplot(data = d,aes(x=seq,y=value))+geom_line() + geom_point()
Maintenant je veux utiliser plotly, principalement pour être en mesure, lorsque le pointeur de la souris sur un point, pour obtenir d'autres informations que la valeur, telles que le nom de la société. J'ai essayer ceci :
require(plotly)
ggplotly()
qui m'obtenir une info-bulle, mais avec seulement seq et de la valeur. J'ai essayé l'option info-bulle= mais il est spécifié, vous pouvez utiliser la seule variable de décrire, dans l'esthétique, et je n'utilise pas le nom de mon sve.
Toute solution? J'ai vu que je ne suis pas le premier avec ce problème, mais je n'ai pas trouvé de réponse travailler avec ggplotly.
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de modifier le
plotly
objet comme suggéré par @royr2. Juste ajouterlabel = name
comme troisième esthétiqueet l'info-bulle affiche
name
en plus deseq
etvalue
.La
ggplotly
fichier d'aide dit à propos detooltip
paramètre:De sorte que vous pouvez utiliser le
label
esthétique aussi longtemps que vous ne souhaitez pas l'utiliser pourgeom_text
.BTW: j'ai aussi essayé de
text
au lieu delabel
mais alors
ggplot2
plaintet le tracé seuls les points. J'ai dû ajouter un groupe factice à
geom_line
pour supprimer la question:(Mais remarque si vous mettez le mannequin groupe en tant que quatrième esthétique à l'intérieur de
aes()
il apparaîtra par défaut aussi dans l'info-bulle.)Cependant, je trouve le titre officieux de
text
esthétique peut devenir utile aux côtés delabel
si vous voulez avoir différentes chaînes tracées pargeom_text
et affiché dans l'info-bulle.Modifier pour répondre à une question dans les commentaires:
Le
tooltip
paramètreggplotly()
peut être utilisé pour contrôler l'apparence.ggplotly(tooltip = NULL)
supprimer les info-bulles à tous.ggplotly(tooltip = c("label"))
sélectionne l'esthétique à inclure dans l'info-bulle."x"
pas"seq"
et"label"
pas"name"
.Bâtiment sur @UweBlock réponse, vous pouvez également créer factice de l'esthétique afin d'afficher plusieurs étiquettes dans les info-bulles. Je ne trouve pas où c'est documenté, mais découvert il emperically. Le dummy variables apparaissent dans l'ordre que vous spécifiez, mais la priorité est donnée à la valeur par défaut des variables (par exemple, x et y). Pour contourner ce problème, vous pouvez spécifier les variables dans une esthétique propre, comme indiqué ci-dessous:
p = ggplot(iris, aes(label=Species, label2=Petal.Length, label3=Petal.Width)) + geom_point(aes(Sepal.Length,Sepal.Width))
. L'résultant de l'intrigue va afficher les info-bulles dans l'ordre où ils apparaissent dans la commande.Officieux
text
esthétique vous permet d'introduire toutes les variables que vous souhaitez (ici, j'utilisename
deux fois pour afficher):J'ai du ajouter un mannequin
group
esthétique pour legeom_line
à fonctionner comme @UweBlock suggéré.Enfin je choisis ce que je veux montrer dans l'info-bulle (ici j'exclus
group
).Vous devrez modifier le
plotly object
pour ce faire. Ou utiliserplot_ly()
pour créer le graphique à la place...EDIT:
Avec la sortie de
plotly 4.0
la syntaxe va changer un peu.plotly v4.0.1