Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何消除颜色kwarg错误?_Python 3.x_Matplotlib - Fatal编程技术网

Python 3.x 如何消除颜色kwarg错误?

Python 3.x 如何消除颜色kwarg错误?,python-3.x,matplotlib,Python 3.x,Matplotlib,我完全不明白为什么我会犯这个错误。 任何帮助都将不胜感激 这是错误信息: 文件“C:/Python27/Scripts/Lab08realdeal.py”,第23行,在 plt.hist(计数,范围=20,颜色=红色) hist中第2896行的文件“C:\Python27\lib\site packages\matplotlib\pyplot.py” 堆叠=堆叠,**千克) 文件“C:\Python27\lib\site packages\matplotlib\axes\u axes.py”,第

我完全不明白为什么我会犯这个错误。 任何帮助都将不胜感激

这是错误信息:

文件“C:/Python27/Scripts/Lab08realdeal.py”,第23行,在 plt.hist(计数,范围=20,颜色=红色)

hist中第2896行的文件“C:\Python27\lib\site packages\matplotlib\pyplot.py” 堆叠=堆叠,**千克)

文件“C:\Python27\lib\site packages\matplotlib\axes\u axes.py”,第5603行,在hist中 raise VALUERROR(“颜色kwarg必须每个数据集有一种颜色”)

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

import csv
import matplotlib.pyplot as plt

def loadContaminantFrequencies(contaminant, fileInfo):
 count= 0  
 for line in fileInfo: 
    if contaminant == line[0]:
      count = count+1

 return count 

ifile = open('air_samples.csv',"rb")
fileInfo = csv.reader(ifile)
count = ("Benzene", fileInfo)
counts = [count,count]


plt.hist(count,range=20,color = 'red')
plt.xlabel("CountOfChemical")
plt.ylabel("Frequency")
plt.axes([0,3000,0,1])
plt.show()
hist()
将数组或数组序列作为参数。如果它得到一个序列,它会尝试绘制几个直方图,序列中的每个数组对应一个直方图。您的第一个参数,
count
,是一个2元素的元组,它被识别为两个独立的数据集。因此,
hist()
希望
color
kwarg也有2个元素,但它只能找到一个,
'red'
,因此出现错误

我不知道你想做什么,但也许正确的选择是

plt.hist(fileInfo,range=20,color = 'red')
(因为我无法想象人们将如何绘制字符串
“Benzene”
的直方图)

编辑:我的回答假设
fileInfo
是可以直方图化的,但显然不是(这就是为什么你应该总是尝试发布自包含的示例)。不管怎么说,就原始问题而言,这并不重要,答案并不取决于它

根据模块的单据,需要先提取数据。同样,由于我没有所有的信息,我将假设您的CSV文件中的数据已经可以使用了(也就是说,有一列浮动)


请尝试自己解决以下任何问题,或者至少创建一个单独的问题。

如果您只删除属性
color='red'
,一切都可能正常。

我应该从一个.csv文件中读取一系列化学品及其浓度和频率值的信息。一旦我通过调用一个函数来收集苯的频率信息,并使用该频率数据绘制一个红色柱状图(20条)。当我应用您向我展示的更正时,我在plt.hist(fileInfo,range=20,color='red')文件中得到一个新的错误文件“C:/Python27/Scripts/Lab08realdeal.py”,第23行“C:\Python27\lib\site packages\matplotlib\pyplot.py”,第2896行,在hist stacked=stacked中,**kwargs)文件“C:\Python27\lib\site packages\matplotlib\axes\u axes.py”,第5578行,在hist中,如果存在(x,np.ndarray)或不可迭代(x[0]):TypeError:“_csv.reader”对象没有属性“getitem”。这可能是由于
类型问题造成的,您可能需要查看:
fileInfo = csv.reader(ifile)
count = numpy.array([float(row[0]) for row in fileInfo])

plt.hist(count,range=20,color = 'red')