Plotly生成K线图时报错TypeError: 'module' object is not callable求解决
解决Plotly生成K线图时的TypeError问题
错误原因分析
你遇到的 TypeError: 'module' object is not callable 是因为两个Plotly API调用的拼写错误:
go.candlestick是模块,不是可调用的类,正确写法是*go.Candlestick*(类名首字母大写)go.figure同样错误,正确的图表实例化方法是*go.Figure*(首字母大写)
另外代码还存在两个小问题:
- 函数内的缩进不规范,
fig = ...和后续代码的缩进层级不对 print(fig.show())无意义,fig.show()本身就会渲染并显示图表,它返回None,打印这个值没有作用
修正后的完整代码
from time import time import plotly.graph_objects as go import pandas as pd def PrintChartData(): data = pd.read_csv("eurusd_m1_03.03.2022.csv") return data def PrintDataChart(): # 复用已有的读取函数,避免重复读取CSV data = PrintChartData() # 修正Candlestick的拼写(首字母大写) chart_data = go.Candlestick( x=data['time'], open=data['open'], high=data['high'], low=data['low'], close=data['close'] ) # 修正Figure的拼写(首字母大写) fig = go.Figure(data=[chart_data]) # 直接调用show()显示图表,不需要print fig.show() # 调用函数生成图表 PrintDataChart()
额外注意事项
- 复用
PrintChartData()函数可以避免重复执行pd.read_csv,提升代码效率 - 确保你的CSV文件路径正确,且包含
time、open、high、low、close这些列名,否则会出现KeyError
内容的提问来源于stack exchange,提问作者Armin Alborzi
相关产品推荐
相关产品推荐

