使用autoplot绘制时间序列报错:'coerce'非colorspace包导出对象
解决autoplot绘制时间序列时的
'coerce' is not an exported object from 'namespace:colorspace'错误 嘿,我碰到过这个问题!你遇到的这个报错,本质是colorspace包版本与forecast、ggplot2等依赖包不兼容导致的——新版本的colorspace已经不再对外导出coerce函数,但你的代码里用到的组件(比如forecast依赖的绘图模块)还在尝试调用它。下面给你几个靠谱的解决办法:
方法一:降级colorspace到兼容版本
这是最直接的解决方案,找一个和当前forecast包兼容的colorspace旧版本来安装:
- 如果还没装
devtools包,先安装它:install.packages("devtools") - 安装指定版本的colorspace(比如2.0-3版本,这个版本是很多用户验证过兼容的):
devtools::install_version("colorspace", version = "2.0-3")
安装完成后重启R会话,再运行你的绘图代码试试。
方法二:更新所有相关依赖包
有时候是因为forecast或ggplot2的版本太旧,没适配新版本的colorspace。尝试更新这些核心包:
update.packages(c("forecast", "ggplot2", "colorspace"))
更新完成后同样需要重启R,再执行你的代码。
方法三:临时应急方案(不推荐长期用)
如果上面两种方法暂时没法操作,可以临时把colorspace内部的coerce函数暴露出来,让依赖包能调用到:
assignInNamespace("coerce", colorspace:::coerce, ns = "colorspace")
注意这个方法是临时的,重启R后就会失效,而且可能带来其他潜在问题,优先推荐前两种方法。
验证代码
解决完后,重新运行你的代码,应该就能正常生成时间序列图了:
library(forecast) WWWusage %>% ets %>% forecast(h=20) -> fc autoplot(WWWusage, series="Data") + autolayer(fc, series="Forecast") + autolayer(fitted(fc), series="Fitted")
内容的提问来源于stack exchange,提问作者Forge
相关产品推荐
相关产品推荐

