Python 在一个matplotlib绘图中读取两个数据集
我尝试在一个图中绘制两个数据集,包括errorbars。对于一个数据集来说,它工作得非常好。但在这个“解决方案”中: 我只知道这个错误Python 在一个matplotlib绘图中读取两个数据集,python,numpy,matplotlib,Python,Numpy,Matplotlib,我尝试在一个图中绘制两个数据集,包括errorbars。对于一个数据集来说,它工作得非常好。但在这个“解决方案”中: 我只知道这个错误 exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace) File "E:/script.py", line 39, in <module> x2.append(float(k[0])) IndexError: list index out
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)
File "E:/script.py", line 39, in <module>
x2.append(float(k[0]))
IndexError: list index out of range
exec(编译(打开(文件名'rb').read(),文件名'exec'),命名空间)
文件“E:/script.py”,第39行,在
x2.追加(浮点(k[0]))
索引器:列表索引超出范围
我没有看到错误,需要一些帮助。有人知道这样做有什么不对吗?我希望这不太容易…第2行的
中可能有一个空行:
,因为它为k[0]
提供了索引器:列表索引超出范围,这意味着在这种情况下,k不存在索引0
。
确保检查分割结果是否为空
例如:
for line2 in lines2:
k = line2.split()
if len(k)==0:
#do something
else:
x2.append(float(k[0]))
y2.append(float(k[1]))
xerr2.append(float(k[2]))
yerr2.append(float(k[3]))
对于第一个for循环也应该这样做。您的问题是在某个点上k=line2.split()
没有任何元素。例如,如果第二个文件有一个空行(可能在末尾),那么split
函数将为您提供一个空列表
for line2 in lines2:
k = line2.split()
if len(k)==0:
#do something
else:
x2.append(float(k[0]))
y2.append(float(k[1]))
xerr2.append(float(k[2]))
yerr2.append(float(k[3]))