Comment puis-je afficher la valeur de y sur info-bulle tandis que planent dans ggplot2
Je veux le montrer la valeur de y quand je tiens ma souris sur un point du graphique. Le code de mon intrigue ressemble à ceci:
output$graph <- renderPlot({
p1 <- ggplot(data, aes(x= date)) +
geom_line(aes(y=Height, colour = "Height"), size=1) +
geom_point(aes(y=Height, colour = "Height", text = paste("Weight/Height:", Height)))
plot(p1)
})
J'ai fait quelques recherches et j'ai pensé que le text = paste("Weight/Height:", Height)
partie dans aes
permettrait de faire en sorte que le texte apparaît. Malheureusement, rien ne s'affiche. Personne ne sait ce que j'ai fait de mal?
OriginalL'auteur Hav11 | 2016-08-12
Vous devez vous connecter pour publier un commentaire.
Malheureusement
ggplot
n'est pas interactif, mais il peut facilement être "fixe" avecplotly
paquet. Vous avez seulement besoin de remplacerplotOutput
avecplotlyOutput
et puis restituer une sur la parcelle avecrenderPlotly
.Exemple 1: plotly
Exemple 2: plotOutput(..., hover = "plot_hover"):
Nous n'avons pas à utiliser tout forfait spécial à présenter l'interactivité de nos graphiques. Tous nous avons besoin est notre jolie brillant
shiny
! On peut juste jouer avecplotOutput
options comme par exempleclick
,hover
oudblclick
l'histoire interactive. (Voir plus d'exemples de shiny galerie)Dans l'exemple ci-dessous, nous ajouter "planant" par
hover = "plot_hover"
puis spécifiez le retard qui est par défaut à 300ms.Nous pouvons ensuite les valeurs de l'accès via
input$plot_hover
et utiliser une fonctionnearPoints
pour afficher les valeurs qui sont à proximité des points.Exemple 3: des ggplot2 info-bulle:
La deuxième solution fonctionne très bien, mais oui...nous voulons faire mieux! Et oui...nous pouvons faire mieux! (...) Si nous utiliser du javaScript mais pssssss ne le dites à personne!).
Exemple 4: ggvis et add_tooltip:
Nous pouvons également utiliser
ggvis
paquet. Ce paquet est grande, cependant, ne suffit pas encore à maturité.Mise à jour:
ggvis
est actuellement en sommeil: https://github.com/rstudio/ggvis#statusÉDITÉ
Exemple 5:
Après ce post j'ai cherché sur internet pour voir si il pourrait faire plus de bien que de exemple 3. J'ai trouvé cette merveilleux info-bulle personnalisée pour ggplot et je crois qu'on peut difficilement faire mieux que cela.
J'ai pris un coup d'oeil sur le lien à l'Exemple 5, et le code est vraiment génial. Malheureusement, j'obtiens l'erreur:
nearPoints: not able to automatically infer 'xvar' from coordinfo
. À partir d'un autre Stackoverflow post, j'ai appris qu'il pourrait avoir quelque chose à voir avec laprint
fonction dans mon code. Cependant, je pense que j'ai besoin d'avoir une sorte de fonction d'impression, surtout parce que je suis en train de travailler avec des boucles et desgrid.arrange()
pour plusieurs parcelles. Je vais essayer de trouver quelques réponses à résoudre ce problèmeOui, le problème est causé par
p <- ggplot(...) ; print(p)
. Si vous imprimez le terrain sansprint
fonction, de sortep <- ggplot(...) ; p
le code fonctionne très bien. Vous pourriez essayer de préciserxval
etyval
dansnearPoints
. Je ne pense pas quegrid.arrange
besoins explicitementprint(p)
. Il fonctionne très bien avecp
ainsi.. je voudrais exécuter le code sans la fonctionprint
d'abord pour voir si tout fonctionneMerci pour votre aide! Je vais essayer de faire un exemple reproductible (peut-être dans un nouveau post)
Plotly est fantastique. Merci pour l'inclure dans votre réponse.
OriginalL'auteur Michal Majka