Voici quelques commande pour interagir avec un graphique. Cliquer sur les points pour les taguer, les identifier, récupérer leurs coordonnées...
Une solution très simple est de faire appel à la commande identify pour identifier un point sur un graphique.
x <- rnorm(40,5,3) ; y <- rnorm(40,5,3)
noms =c(rep("Mickey",20),rep("Julien",10),rep("Gertrude",10))
plot(x,y)
identify(x,y,noms)
La fonction locator permet de récupérer facilement les coordonnées d'un point comme dans l'exemple ci-dessous.
Exemple : la fonction locator() permet de récupérer les coordonnées d'un point précis. La fonction cat les affiche dans la console.
Voisine l'exemple d'une commande loc_punct() pour récupérer les coordonnées d'un point.
# Exemple de données simulées
x <- rnorm(40,5,3) ; y <- rnorm(40,5,3)
# Tracer le graphique
plot(x,y,pch=16, col="#AA1256")
# La fonction à copier-coller : loc_punct()
loc_punct <- function(x,y) {
position = locator(n=1) ; position ; x_min = x-position$x ; y_min = y-position$y
point_x = x[which(abs(x_min) ==(sort(abs(x_min))[1]) ) ][1]
point_y = y[which(abs(y_min) ==(sort(abs(y_min))[1]) ) ][1]
points(point_x,point_y,col="red",cex=2,lwd=2)
cat("Point de coordonnées x : ",point_x," et y : ",point_y,".")
}
# Activation de la fonction
loc_punct(x,y)
# il suffit de cliquer sur le point de son choix pour que swes coordonnées s'affichent dans la console.
Graphique avec localisation d'un point en cliquant dessus
getGraphicEvent est une commande qui permet de récupérer les déplacements et les clicks de la souris pour déclencher les réactions souhaitées.
Voici l'exemple de la commande plot_id_point() pour interagir n fois de suite avec un graphique.
Commandes à taper sous R
Faire un nuage de points interactifs :
x <- rnorm(20) ; y <- rnorm(20)+x
require("plotly")
plot_ly(x = x, y = y,
mode = 'markers',
type = 'scatter',
marker = list(size = 10))
plotly idéal pour avoir une interface automatique ou afficher du ggplot interactif.
http://perso.ens-lyon.fr/lise.vaudor/cest-donc-a-ca-que-ca-sert-plotly-pour-r/
R markdown, Shiny et autres méthodes de dashboard comme power BI.