2016-02-02 144 views
5

我在使用ggplotly()ggplot圖時遇到問題:y軸消失。下面是使用iris數據集重複的例子(這個例子是很垃圾,但不管)ggplot2 + plotly:軸標題消失

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) 

正如你所看到的,Y軸標題消失。

那麼,如果ylim被刪除它的作品,但我想指定y限制。

我試着做到以下幾點:

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) 

但現在它的圖例標題不符合。

我的配置,R 3.2.0,plotly 2.0.16,GGPLOT2 2.0.0

在這兩個例子由ggplot給出的圖是我想要的,但ggplotly給別的東西。這是一個問題,有沒有解決方法?

回答

7

我不知道爲什麼會發生這種情況,但這裏有一個解決方法。它會給你你想要的。

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

這更糟糕的是方面 – marbel

2

我有類似的問題。通過ggplotly推送的ggplot對象正在展示我的y軸標籤[在Shiny應用程序中]的剪輯。

爲了解決這個問題,我做了MLavoie的建議,但之後它同時具有了我的ggplot標籤和ggplotly標籤。爲了解決這個問題,我簡單地將我的ggplot標籤設置爲空格並且一切正常(如果您將它們設置爲空白,plotly標籤將與軸刻度標記值重疊)。

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