【发布时间】:2013-08-21 03:48:08
【问题描述】:
以下用 Python 编写的代码将数据从 Excel 导入 Python,然后使用 matplotlib 绘图。我正在尝试使用 fill_between 函数在第 80 行上方和下方填充不同的颜色,但它给出了
ValueError: Argument dimensions are incompatible
注意:Excel 文件 ('eegg.xlsx') 有 4 列,682 行,包含 int 数据 (0-100)。
我认为问题出在fill_between 调用的where 参数上,但我无法解决这个问题。
import xlrd
import numpy
from datetime import time
from pylab import *
workbook = xlrd.open_workbook('eegg.xlsx')
worksheet = workbook.sheet_by_name('Sayfa1')
num_rows = worksheet.nrows - 1
num_cells = worksheet.ncols - 1
curr_row = -1
att=[]
med=[]
for i in [2,3]:
kolon = worksheet.col(i)
for x in kolon[1:]:
d= int(x.value)
if i==2:
att.append(d)
elif i==3:
med.append(d)
n = len(att)
X = np.linspace(0,n,n,endpoint=True)
Y1 = att
plot(X, Y1, color='blue', alpha=1.00)
fill_between(X, 0, Y1, (Y1) > 80, color='red', alpha=.25)
fill_between(X, 0, Y1, (Y1) < 80, color='blue', alpha=.25)
xlim(0,n), xticks([])
ylim(0,110), yticks([])
【问题讨论】:
-
你能打印出
X和Y1的形状吗?做print X.shape, Y1.shape. -
虽然知道所引发的错误类型可能有助于我们解决问题,但如果您发布完整的回溯会容易容易,因为这告诉我们在哪里引发了错误。
标签: python-2.7 matplotlib xlrd