从 ggplot2 使用 plotly 时缺少图例和颜色

Legend and colours missing when using plotly from ggplot2

我使用 ggplot2 制作了一个箱线图,它在 R 中看起来很漂亮,并带有相应的图例。当我将其导出到 plotly 时,箱线图都是红色的,图例也消失了。 我不能post这里的情节图片,因为它不会让我,但我的代码如下:

r <- ggplot(data=all.data, aes(factor(Year), Data))+xlab("Year")
r <- r + geom_boxplot(outlier.shape = NA, aes(fill = factor(Month))) 
r <- r + scale_y_continuous(limits = c(-1, 6.5))
r <- r+ scale_fill_discrete(name = "Month")
r
gg <- ggplotly(r,kwargs=list(world_readable=FALSE))

我在 geom_boxplot 层中包含了处理颜色的 fill 命令,但我不明白为什么它没有传输。

您是否安装了最新的 ggplot2plotly 软件包?我尝试了一个简单的条形图,但无法重现您的问题。

我安装了这些版本:

packageVersion("ggplot2")
# [1] ‘1.0.1’
packageVersion("plotly")
# [1] ‘1.0.7’
packageVersion("shiny")
# [1] ‘0.12.2’

如果您的版本较旧,您可以考虑升级到最新的最佳版本。

在我的机器上这个愚蠢的例子(类似于你不完整的代码片段):

library(plotly)
library(ggplot2)

all.data <- data.frame(Year = c(2000, 2000, 2005, 2005),
                       Month = c("Jan", "Jan", "Jul", "Jul"),
                       Data = c(0, 3.2, 3, 4))

r <- ggplot(data = all.data, aes(factor(Year), Data)) + xlab("Year")
r <- r + geom_boxplot(outlier.shape = NA, aes(fill = factor(Month))) 
r <- r + scale_y_continuous(limits = c(-1, 6.5))
r <- r + scale_fill_discrete(name = "Month")
r

Sys.setenv("plotly_username" = "MyCoooolUsername")
Sys.setenv("plotly_api_key" = "MySeCrEtPWD")
plotly:::verify("username")
plotly:::verify("api_key")
gg <- ggplotly(r,world_readable=TRUE)
gg

生产

符合预期。