将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,ggplot2 2.0.0
在两个例子中,ggplot给出的图形是我想要的,但是ggplotly给出了别的东西。这是一个问题吗,有解决方法吗?
答案 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))
`