据我所知,问题在于颜色的尺寸与直方图输入的尺寸不匹配。但是,我不明白为什么。
这部分代码没有错误:
#Creates a histogram of zGRBs, comparing with old and new datasets
zS = []
zM = []
plt.figure(1)
for i in range(len(GRBDict["GRBname"])):
if GRBDict.get("Group")[i] == "S":
zS += [GRBDict.get("z")[i]]
elif GRBDict.get("Group")[i] == "M":
zM += [GRBDict.get("z")[i]]
if len(zS) > 0:
plt.hist(zS, np.linspace(0.0, 10.0, 41), color="blue", label="Starling: " + str(Scount), alpha=0.8)
if len(zM) > 0:
plt.hist(zM, np.linspace(0.0, 10.0, 41), color="red", label="McGuire: " + str(Mcount), alpha=1)
if len(GRBDict["z"]) > 0:
plt.hist(GRBDict["z"], np.linspace(0.0, 10.0, 41), color="black", label="Total: " + str(Tcount), \
alpha=0.6)
plt.xlabel("z")
plt.ylabel("N(z)")
plt.legend(loc="upper right")
plt.savefig(rootdir + "N(z)Hist.png", bbox_inches="tight")
plt.close()
但是这段代码并没有:
#Creates a histogram of spectral count
SC = []
plt.figure(2)
with open(rootdir + "SpecLog.txt", "r") as fo:
for line in fo:
SC += [line.split()[8]]
if len(SC) > 0:
plt.hist(SC, np.linspace(0.0, 20000.0, 2001), color="green")
plt.xlabel("Spectral counts cts/s")
plt.ylabel("N(Spectral counts)")
plt.savefig(rootdir + "N(SC)Hist.png", bbox_inches="tight")
plt.close()
问题一定是盯着我看,但我看不到它,考虑到两个直方图代码看起来都相同,但我在第二个直方图上得到了颜色kwarg错误。
我还是python的新手,所以如果这很简单就道歉,我已经搜索过这个错误,但似乎没有任何问题有帮助。
答案 0 :(得分:0)
我怀疑这是一个愚蠢的错误。原来是因为SC包含字符串而不是数字,所以添加
SC += [float(line.split()[8])]
只需要纠正它。
似乎首先出现错误的错误类型,因为它没有解释任何内容。
谢谢你的帮助。