ValueError:color kwarg每个数据集必须有一种颜色

时间:2014-11-17 21:19:35

标签: python-2.7 matplotlib

据我所知,问题在于颜色的尺寸与直方图输入的尺寸不匹配。但是,我不明白为什么。

这部分代码没有错误:

#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的新手,所以如果这很简单就道歉,我已经搜索过这个错误,但似乎没有任何问题有帮助。

1 个答案:

答案 0 :(得分:0)

我怀疑这是一个愚蠢的错误。原来是因为SC包含字符串而不是数字,所以添加

 SC += [float(line.split()[8])] 

只需要纠正它。

似乎首先出现错误的错误类型,因为它没有解释任何内容。

谢谢你的帮助。