matplotlib错误:ValueError:x和y必须具有相同的第一个维度

matplotlib错误:ValueError:x和y必须具有相同的第一个维度,matplotlib,dimension,Matplotlib,Dimension,我试图用matplotlib绘制两个列表,但在x和y的维度上出现了一个错误。其中一个列表包含日期和其他数字,您可以看到列表的内容,我已将它们打印在下面 我试着用len()检查列表的长度,但它们似乎相等,所以我有点不知所措。我查了好几个关于这个错误的帖子,运气不太好 注意:“查询”包含我的SQL查询,为了简单起见,我没有将其包括在内 #####我的代码 # 我的脚本的输出: date = [datetime.datetime(2010, 1, 31, 22, 0), datetime.datet

我试图用matplotlib绘制两个列表,但在x和y的维度上出现了一个错误。其中一个列表包含日期和其他数字,您可以看到列表的内容,我已将它们打印在下面

我试着用len()检查列表的长度,但它们似乎相等,所以我有点不知所措。我查了好几个关于这个错误的帖子,运气不太好

注意:“查询”包含我的SQL查询,为了简单起见,我没有将其包括在内

#####我的代码 # 我的脚本的输出:

date =  [datetime.datetime(2010, 1, 31, 22, 0), datetime.datetime(2010, 1, 31, 22, 1), datetime.datetime(2010, 1, 31, 22, 2), datetime.datetime(2010, 1, 31, 22, 3), datetime.datetime(2010, 1, 31, 22, 4), datetime.datetime(2010, 1, 31, 22, 5), datetime.datetime(2010, 1, 31, 22, 6), datetime.datetime(2010, 1, 31, 22, 7), datetime.datetime(2010, 1, 31, 22, 8), datetime.datetime(2010, 1, 31, 22, 9), datetime.datetime(2010, 1, 31, 22, 10)]

close =  [1.5945, 1.5946, 1.59465, 1.59505, 1.59525, 1.59425, 1.5938, 1.59425, 1.59425, 1.5939, 1.5939]

date length =  11

close length =  11

Traceback (most recent call last):
  File "script.py", line 234, in <module>
    plot2()
  File "script.py", line 231, in plot2
    plt.plot(date, close)
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2467, in plot
    ret = ax.plot(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 3893, in plot
    for line in self._get_lines(*args, **kwargs):
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 322, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 300, in _plot_args
    x, y = self._xy_from_xy(x, y)
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 240, in _xy_from_xy
    raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
date=[datetime.datetime(2010,1,31,22,0),datetime.datetime(2010,1,31,22,1),datetime.datetime(2010,1,31,22,2),datetime.datetime(2010,1,31,22,3),datetime.datetime(2010,1,31,22,4),datetime.datetime(2010,1,31,22,5),datetime.datetime(2010,1,31,22,6),datetime.datetime(2010,1,31,22,22,7),datetime.datetime(2010,1,31,22,8),datetime.datetime(2010,1,31,22,9),datetime.datetime(2010,1,31,22,10)]
收盘价=[1.5945,1.5946,1.59465,1.59505,1.59525,1.59425,1.5938,1.59425,1.59425,1.59425,1.5939,1.5939]
日期长度=11
闭合长度=11
回溯(最近一次呼叫最后一次):
文件“script.py”,第234行,在
图2()
plot2中第231行的文件“script.py”
plt.plot(日期,结束)
文件“/usr/lib/pymodules/python2.7/matplotlib/pyplot.py”,第2467行,在plot中
ret=最大绘图(*args,**kwargs)
文件“/usr/lib/pymodules/python2.7/matplotlib/axes.py”,第3893行,在绘图中
对于自身中的行。获取行(*args,**kwargs):
文件“/usr/lib/pymodules/python2.7/matplotlib/axes.py”,第322行,在下一个参数中
对于seg in self.\u plot\u args(剩余,kwargs):
文件“/usr/lib/pymodules/python2.7/matplotlib/axes.py”,第300行,在绘图参数中
x、 y=自。_xy_自_xy(x,y)
文件“/usr/lib/pymodules/python2.7/matplotlib/axes.py”,第240行,从_xy开始
提升值错误(“x和y必须具有相同的第一个维度”)
ValueError:x和y必须具有相同的第一个维度

提前感谢。

使用您的数据对我有效

更改代码并将打印语句放入函数中

def plot2():
    print "date = ", date
    print "close = ", close
    print "date length = ", len(date)
    print "close length = ", len(close)
    plt.plot(date, close)
    plt.show()

你的代码一定有什么地方没有显示出来。

好主意!通过这样做,我发现matplotlib出于某种原因不喜欢关闭列表名,我已对其进行了更改,效果很好。非常感谢你的帮助。
def plot2():
    print "date = ", date
    print "close = ", close
    print "date length = ", len(date)
    print "close length = ", len(close)
    plt.plot(date, close)
    plt.show()