2016-02-02 3 views
5

Ich habe ein Problem, wenn ggplotly() zu einem ggplot Graph verwendet: die Y-Achse verschwindet. Hier ist ein reproduzierbares Beispiel mit iris Dataset (in diesem Beispiel ist ziemlich dump, aber was auch immer)ggplot2 + plotly: Achsentitel verschwinden

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) 

Wie Sie sehen können, verschwand der Y-Achse Titel.

Nun, wenn ylim gelöscht wird, funktioniert es, aber ich möchte y Grenzen angeben.

Ich habe versucht, die folgendes zu tun:

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) 

Aber jetzt ist es die Legende Titel, der nicht passt.

Meine config: R 3.2.0, plotly 2.0.16, ggplot2 2.0.0

In beiden Beispielen der von ggplot Graphen ist das, was ich will, aber ggplotly gibt noch etwas anderes. Ist es ein Problem, gibt es einen Workaround?

Antwort

7

Ich bin mir nicht sicher, warum es passiert, aber hier ist eine Arbeit herum. Es wird dir geben, was du willst.

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

ist dies noch schlimmer für Facetten – marbel

2

Ich hatte ein ähnliches Problem. Ein ggplot-Objekt, das durch ggplotly geschoben wurde, zeigte ein Clipping meiner y-Achsen-Beschriftung [in einer Shiny-App].

Um es zu beheben, tat ich, was MLavoie vorgeschlagen, aber dann hatte es beide meine ggplot Etiketten und meine gplotly Etiketten. Um das zu beheben, habe ich einfach meine ggplot-Beschriftungen auf Leerzeichen gesetzt und alles hat funktioniert (wenn Sie sie auf nichts setzen, überlappen sich die plotly-Beschriftungen mit den Achsen-Teilstrichen).

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