【发布时间】:2015-01-07 17:35:03
【问题描述】:
我正在尝试为给定 csv 文件中的特定列绘制直方图和散点图。我是编程新手,我从朋友那里得到了这段代码,它显然有效,但不知何故我收到了这个错误。代码是:
import csv
import numpy as np
import matplotlib.pyplot as plt
f = open('Data for question 13.csv')
data = csv.reader(f)
Area = []; MajorAxisLength = []; MinorAxisLength = []; Perimeter = []
MinIntensity = []; MeanIntensity = []; MaxIntensity = []
header = [Area, MajorAxisLength, MinorAxisLength,Perimeter,MinIntensity,MeanIntensity,MaxIntensity]
for row in data:
i = 1
for name in header:
name.append(row[i])
i = i + 1
plt.figure()
plt.hist(Area, bins=50) # error follows after this
错误:
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
plt.hist(Area, bins=50, alpha=0.5)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/pyplot.py", line 2827, in hist
stacked=stacked, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 8312, in hist
xmin = min(xmin, xi.min())
File "/Library/Python/2.7/site-packages/numpy-1.9.0-py2.7-macosx-10.9-intel.egg/numpy/core/_methods.py", line 29, in _amin
return umr_minimum(a, axis, None, out, keepdims)
TypeError: cannot perform reduce with flexible type
我无法摆脱这个错误。 答案应该很简单,但由于我是新手,我不知道如何处理它。
【问题讨论】:
-
我无法重现这个。您的数据文件是什么样的?
-
有没有一种方法可以共享或上传数据文件以查看数据的外观?我不知道这是否会给您任何想法并有所帮助:它有 9 列带有标题和数字数据,直到大约 400 行。
-
要么将前几行粘贴到问题中(仅约 10 行),要么使用例如。 pastebin 并将链接放在问题中
标签: python csv matplotlib