Jupyter中cufflinks QuantFig调用iplot报认证错误如何解决
报错根源
PlotlyRequestError: Authentication credentials were not provided 触发原因是cufflinks默认开启Plotly在线绘图模式,会尝试连接Plotly云端服务上传图表,强制要求账号认证。你虽然导入了plotly离线模块,但没有给cufflinks配置全局离线规则,就会触发该报错。qf.show() 报错是因为cf.QuantFig是cufflinks封装的专属对象,不是原生Plotly Figure实例,本身没有内置show方法。
修复步骤
- 第一步:在导入依赖、执行
init_notebook_mode()之后,添加cufflinks全局离线配置,强制所有绘图逻辑走本地离线渲染,不需要云端认证:
cf.go_offline() cf.set_config_file(offline=True, world_readable=True)
- 第二步:调整绘图函数的返回逻辑,二选一即可:
方案一:保留原有iplot调用,显式指定离线渲染参数,跳过在线校验:
方案二:如果习惯用# 替换函数内原有的return qf.iplot() return qf.iplot(asFigure=False)show()方法渲染,先将QuantFig对象转为原生Plotly Figure实例,再调用show方法:# 替换函数内原有的return qf.iplot() fig = qf.iplot(asFigure=True) return fig.show() - 补充检查:你贴出的代码中
stocks_selector、indicator_selector、日期选择器、指标参数控件等变量需要提前定义完成,再传入controls_dict,否则会触发变量未定义错误,举个基础控件定义示例:
# 资产选择下拉框 stocks_selector = wd.Dropdown(options=stocks, value=stocks[0], description='标的') # 指标多选框 indicator_selector = wd.SelectMultiple(options=indicators, value=[indicators[0]], description='技术指标') # 日期选择、布林带/MACD/RSI参数的滑块、输入框控件可按照交互需求自行定义
效果验证
重新运行全部单元格后,不会再弹出认证要求,交互式K线、技术指标图会直接在Notebook内渲染,调整控件参数即可实时更新图表内容。
内容的提问来源于stack exchange,提问作者XJTLU media
相关产品推荐
相关产品推荐

