2011-10-13 69 views
4

我只是简单地将数据保存到文件中并将它们读出来,然后绘制直方图。然而,它似乎是这个错误,尽管我实际上并没有改变原来的代码。谁能告诉我什么是错的?非常感谢。ValueError(“颜色kwarg必须每个数据集有一种颜色”)?

这里是HIST()

f_120 = plt.figure(1) 
plt.hist(tfirst_list, bins=6000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer') 
plt.axvline(x = 30, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '30 min') 
plt.axvline(x = 60, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 hour') 
plt.legend() 

plt.ylabel('Percentage of answered questions') 
plt.xlabel('Minutes elapsed after questions are posted') 
plt.title('Cumulative histogram: time elapsed \n before questions receive answer (first 2 hrs)') 
plt.ylim(0,1) 
plt.xlim(0,120) 

f_120.show() 

f_2640 = plt.figure(2) 
plt.hist(tfirst_list, bins=6000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer') 
plt.axvline(x = 240, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '4 hours') 
plt.axvline(x = 1440, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 day') 
plt.legend(loc= 4) 

plt.ylabel('Percentage of answered questions') 
plt.xlabel('Minutes elapsed after questions are posted') 
plt.title('Cumulative histogram: time elapsed \n before questions receive answer (first 48)') 
plt.ylim(0,1) 
plt.xlim(0,2640) 

f_2640.show() 

的代码,有全文的错误:

plt.hist(tfirst_list, bins=6000000, normed = True, histtype ="step", 
      cumulative = True, color = 'b',label = 'first answer') 

    File "C:\Python26\lib\site-packages\matplotlib\pyplot.py", line 2160, in hist 
    ret = ax.hist(x, bins, range, normed, weights, cumulative, bottom, histtype, 
        align, orientation, rwidth, log, color, label, **kwargs) 

    File "C:\Python26\lib\site-packages\matplotlib\axes.py", line 7606, in hist 
    raise ValueError("color kwarg must have one color per dataset") 

ValueError: color kwarg must have one color per dataset 

回答

7

这个问题是因为你已经定义tfirst_list为N维阵列。
例如:

tfirst_list = [1, 2, 3, 4, 5, 6, 7, 8]  #works 
tfirst_list = [[1, 2, 3, 4], [5, 6, 7, 8]] #produces the Exception you have 

如果使用N维数据(N 数据集),则color关键字参数(颜色kwarg)必须也N维(一个每个数据集的色彩)。例如,对于上述情况:

color = ['b', 'r']