我正在尝试使用ggplot2
的{{1}}打印热图,并使用包geom_tile
显示它,但我得到了一些意想不到的行为。
在plotly的网站https://plot.ly/ggplot2/geom_tile/
中有一个可重现的例子为了方便起见,我将代码粘贴到此处:
plotly
根据该网站,我应该得到这样的东西:
但我得到的结果是下一个:
有趣的是,如果我用library(plotly)
library(reshape2)
p <- volcano %>%
melt() %>%
ggplot(aes(Var1, Var2, fill = value)) + geom_tile()
ggplotly(p)
打印ggplot
对象p
,我会得到我应该得到的结果:
这让我觉得问题是print(p)
而不是plotly
。
我使用ggplot
和ggplot
运行其他示例中的代码,这一切都运行良好,问题似乎与plotly
有关。
我的geom_tile
是:
SessionInfo()
R version 3.2.4 Revised (2016-03-16 r70336)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 15.10
和ggplot
的版本是:
我还用Mac测试了这段代码并获得了相同的意外结果。
答案 0 :(得分:2)
所以,我找到了三种可能的解决方案:
plotly
的人告诉我,使用devtools::install_github('ropensci/plotly')
安装开发版本3.4.13应该可以修复它。我试过了它确实有效。aes
geom_tile
中变量的顺序也有效。第三种解决方案的代码是:
p <- t(volcano) %>%
melt() %>%
ggplot(aes(x=Var2, y=Var1)) + geom_tile(aes(fill=value))
ggplotly(p)