使用Plotly绘制折线图出现'module' object is not callable报错的原因
报错原因
你遇到的'module' object is not callable报错核心是调用了plotly.graph_objs下的layout模块而非其提供的Layout类,具体问题点如下:
- 大小写错误:
go.layout是模块名,你需要调用的是构造布局的类go.Layout(首字母大写) - 缩进错误:
layout、figure、pyo.plot这三行代码前多了不必要的缩进,和前面的data定义层级不匹配 - 可选优化:数据透视表的
values属性返回的是二维数组,直接传入y参数可能导致绘图异常,直接指定列名取值更稳妥
修正后可运行代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns plt.style.use('ggplot') import plotly.offline as pyo import plotly.graph_objs as go import plotly.express as px df1 = pd.read_csv("Funct_TDH_RISE_Corners_2p0_A.txt",delim_whitespace=True) df1.to_csv('TDH.csv',index=False) df1['SPEC_MIN']=5 df1['SPEC_MAX']=30 TDH_PVT= pd.pivot_table(df1, index = ['Device_ID'],values = ['TDH_Rise[ns]']) # 修正后的绘图代码 data=[go.Scatter( x=TDH_PVT.index, y=TDH_PVT['TDH_Rise[ns]'], # 直接指定列名取一维序列,避免二维数组的适配问题 mode='lines', name='TDH_RISE' )] layout=go.Layout(title='TDH RISE') # 替换为大写的Layout类,删除多余缩进 figure=go.Figure(data=data,layout=layout) pyo.plot(figure)
内容的提问来源于stack exchange,提问作者Confused
相关产品推荐
相关产品推荐

