gpt4 book ai didi

python - 如何从 ASCII 文件绘制波长与通量的关系图

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:44 27 4
gpt4 key购买 nike

因此,我尝试从本地 ASCII 文件绘制恒星的光谱(程序中下面的路径是实际路径,我只是在此处放置了一个假路径),但出现元组错误。正如您所见,我对 Python 还很陌生。

import numpy as np
import astrotools as at
from matplotlib import pyplot as plt
import pyfits
from astropy.io import fits


def pfit():
f2 = open('/Users/myname/filepathtoASCIIfile', 'r')
lines = f2.readlines()
f2.close()

w = []
f = []

for line in lines:
if not line.startswith('#'):
# if line.endswith('e-16') or line.endswith('e-15'):
# line = line[:-4]
p = line.split()
if not p[0].startswith('#'):
try:
w.append(float(p[0]))
f.append(float(p[1]))
except IndexError:
pass

W = np.array(w)
F = np.array(f)
#return (W, F)

plt.plot(W, F)
plt.show()

当我在 Python 中运行它时得到的错误是:

     33 
---> 34 plt.plot(W, F)
35 plt.show()
36

类型错误:“元组”对象不可调用

最佳答案

现在可能错误出在其他地方。您的代码似乎没有任何严重错误,如果您能够创建数组 WF,那么您的数据就很好。

该错误暗示 plt.plot 发生了一些令人悲伤的事情。你可能在某处有一句话说:

plt.plot = ...

例如,您在某个时候写过:

plt.plot = (W,F)

这已经通过元组覆盖了原始的 plt.plot 函数。现在您尝试调用该元组,但它不起作用。

要验证情况是否如此,请在绘图命令之前添加一行:

print plt.plot

结果应该是这样的:

<function plot at 0x10203040>

如果不是,则说明您已经终止了 plot 命令。

(顺便说一句,感谢您展示代码和实际的错误消息!欢迎来到 SO!)

关于python - 如何从 ASCII 文件绘制波长与通量的关系图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24743468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com