2016-02-02 3 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, 2.0.16 plotly, 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

У меня была аналогичная проблема. Объект ggplot, проталкивающийся через ggplotly, демонстрировал отсечение моей метки оси 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) 
Смежные вопросы