2016-02-02 21 views
5

Ho riscontrato un problema quando si utilizza ggplotly() in un grafico ggplot: l'asse y scompare. Ecco un esempio riproducibile utilizzando iris set di dati (questo esempio è abbastanza discarica, ma qualunque cosa)ggplot2 + plotly: il titolo dell'asse scompare

data(iris) 
g = ggplot(data = iris, aes(x = Petal.Length, y = Petal.Width, fill = Species)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    scale_fill_manual(name = "legend", values = c("blue", "red", "green")) + 
    ylab("Y title") + 
    ylim(c(0,3)) + 
    xlab("X title") + 
    ggtitle("Main title") 
g 
ggplotly(g) 

Come si può vedere, il titolo dell'asse Y svanì.

Bene, se ylim viene eliminato, funziona, ma mi piacerebbe specificare i limiti.

ho cercato di fare quanto segue:

data(iris) 
g = ggplot(data = iris, aes(x = Petal.Length, y = Petal.Width, fill = Species)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    scale_fill_manual(name = "legend", values = c("blue", "red", "green")) + 
    scale_y_continuous(name = "Y title", limits = c(0, 3)) + 
    xlab("X title") + 
    ggtitle("Main title") 
g 
ggplotly(g) 

Ma ora è il titolo della legenda che non va bene.

mio config: R 3.2.0, plotly 2.0.16, 2.0.0 ggplot2

In entrambi gli esempi grafico data dal ggplot è quello che voglio, ma dà ggplotly qualcos'altro. È un problema, c'è una soluzione?

risposta

7

Non sono sicuro del motivo per cui sta accadendo, ma qui c'è un problema. Ti darà quello che vuoi.

p <- ggplotly(g) 
x <- list(
    title = "X Title" 
) 
y <- list(
    title = "Y Title" 
) 
p %>% layout(xaxis = x, yaxis = y) 
+0

questo è ancora peggio per le faccette – marbel

2

Avevo un problema simile. Un oggetto ggplot premuto su ggplotly mostrava il ritaglio dell'etichetta dell'asse y [in un'app Shiny].

Per risolvere il problema, ho fatto ciò che MLavoie ha suggerito, ma poi aveva le mie etichette ggplot e le mie etichette ggplotly. Per risolvere questo problema ho semplicemente impostato le etichette ggplot negli spazi e tutto ha funzionato (se non le hai impostate su nulla, le etichette tratteggiate si sovrappongono ai valori del segno di spunta dell'asse).

p <- ggplotly(g + ylab(" ") + xlab(" ")) 
x <- list(
    title = "X Title" 
) 
y <- list(
    title = "Y Title" 
) 
p %>% layout(xaxis = x, yaxis = y) 
Problemi correlati