7

我在使用图表时遇到了一个问题ggplotly()ggploty 轴消失了。这是一个使用数据集的可重现示例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 给出了其他的东西。这是一个问题,有解决方法吗?

4

3 回答 3

9

我不确定为什么会这样,但这里有一个解决方法。它会给你你想要的。

p <- ggplotly(g)
x <- list(
    title = "X Title"
)
y <- list(
    title = "Y Title"
)
p %>% layout(xaxis = x, yaxis = y)
于 2016-02-02T15:01:07.760 回答
2

我遇到了类似的问题。通过 ggplotly 推送的 ggplot 对象正在展示我的 y 轴标签 [在 Shiny 应用程序中] 的剪裁。

为了解决这个问题,我按照 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)
于 2016-03-18T01:58:45.043 回答
1

我遇到了同样的问题,感谢您的评论,我可以解决它。但是我遇到了轴标签附加到情节的问题。所以我通过添加边距来解决它。

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))

`

于 2018-06-19T12:22:30.807 回答