2016-01-05 13 views
13

Sono in difficoltà con la formattazione del testo quando si utilizza ggplotly e la funzionalità mouse over.Formattazione del mouse sulle etichette in modo grafico quando si utilizza ggplotly

library(plotly) 
df <- data.frame(a=letters, b=LETTERS, x=runif(26), y=runif(26)) 
g <- ggplot(df, aes(x,y)) + geom_point(aes(text=sprintf('letter: %s\nLetter: %s', a, b))) 
g 
(gg <- ggplotly(g)) 

Mi piacerebbe avere un testo formattato o almeno una nuova riga nel mio mouse su etichetta. C'è una buona documentazione su come progettare questo mouse sulla cosa delle bolle?

risposta

9

plotly può utilizzare il tag HTML interruzione di riga. È possibile ottenere ciò che il vostro dopo aver usato il tag <br> per una nuova riga:

g <- ggplot(df, aes(x,y)) + 
     geom_point(aes(text=sprintf("letter: %s<br>Letter: %s", a, b))) 

(gg <- ggplotly(g)) 
+2

Impressionante, non ci avevo pensato ... Questo rende * anche * molto più divertente possibile !!! – drmariod

+1

@drmariod questo mi dà un errore seguente: 'Errore: (convertito da avviso) Ignora l'estetica sconosciuta: text' ggplot2 è nella versione 2.2.1 –

+0

Utilizzando questo metodo in un grafico a linee con più linee (differenziate per colore), I ha dovuto aggiungere in modo specifico un'estetica per il gruppo. cioè geom_line (aes (x = x, y = y, text = "", color = z, group = z)) senza testo il gruppo = z non è necessario. Ho quindi usato ggplotly (p, tooltip = "text") come risposta di @Jon Olav Vik. – user1420372

13

Vedere le tooltip argument to ggplotly(). Ad esempio, per visualizzare solo il nome della specie (es virginica per il punto in alto a destra) sulla comparsa:

g <- ggplot(tail(iris), aes(Petal.Length, Sepal.Length, text=Species)) + geom_point() 
ggplotly(g, tooltip="text") 

Altri esempi:

ggplotly(g, tooltip="x")    # Petal.Length: 5.7 
ggplotly(g, tooltip="Petal.Length") # Petal.Length: 5.7 
ggplotly(g, tooltip=c("x", "y")) 

L'ultimo esempio mostrerà il tooltip due linee

Petal.Length: 5.7 
Sepal.Length: 6.7 
+1

Tooltip per la vittoria. – Nick