使用plotly::ggplotly()转换ggplot2图表报错,如何解决?
ggplotly转换ggplot2折线图时出现参数错误的解决办法
问题重现
使用ggplot2创建的静态折线图显示正常,但通过ggplotly()转换为交互式图表时,抛出如下错误:
Fehler in train(..., self = self) : unbenutztes Argument (list("year", "value", "letter", "label", "letter"))
复现代码:
require(ggplot2) require(plotly) dat <- expand.grid( year=2000:2020, letter=letters[1:3], stringsAsFactors=FALSE ) dat[,"value"] <- runif(nrow(dat)) dat[, "label"] <- sprintf("%s (%d): %.3f", dat[,"letter"], dat[, "year"], dat[,"value"]) p <- ggplot2::ggplot(dat, ggplot2::aes(x = year, group=letter, y=value, text=label)) + ggplot2::geom_line(ggplot2::aes(color=letter), linewidth=1.1) # 执行此代码触发错误 plotly::ggplotly(p)
原因及解决方法
该错误源于ggplot2与plotly版本不兼容,导致参数传递出现异常。更新ggplot2至最新稳定版本即可解决问题:
# 安装或更新ggplot2 install.packages("ggplot2")
更新完成后重新运行代码,ggplotly()就能正常将静态图表转换为交互式版本。
内容的提问来源于stack exchange,提问作者Karsten W.
相关产品推荐
相关产品推荐

