ggplot2 + plotly:轴标题消失

时间:2016-02-02 14:38:47

标签: r ggplot2 plotly ggplotly r-plotly

ggplotly()用于ggplot图表时出现问题:y轴消失。这是一个使用iris数据集的可重现示例(此示例非常简单,但无论如何)

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,ggp​​lot2 2.0.0

在两个例子中,ggplot给出的图形是我想要的,但是ggplotly给出了别的东西。这是一个问题吗,有解决方法吗?

3 个答案:

答案 0 :(得分:8)

我不确定它为什么会发生,但这是一个解决方法。它会给你你想要的东西。

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

答案 1 :(得分:2)

我遇到了类似的问题。通过ggplotly推送的ggplot对象显示了我的y轴标签[在一个闪亮的应用程序中]。

为了解决这个问题,我做了MLavoie的建议,但后来我的ggplot标签和我的ggplotly标签。为了解决这个问题,我只需将我的ggplot标签设置为空格并且一切正常(如果将它们设置为空,则图形标签将与轴刻度标记值重叠)。

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

答案 2 :(得分:0)

我有同样的问题,多亏您的评论,我可以解决。但是,我有一个问题,即轴的标签贴在绘图上。所以我通过增加边距来解决它。

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

`