2011-08-19 61 views
2

我想使用matplotlib和plot 2数组的plot方法。要沿x轴绘制的数组有1行128列[1,128]。要沿y轴绘制的阵列有14行128列[14,128]。当我尝试用图解法,它返回此消息:在Python中绘图时的ValueError

ValueError: x and y must have same first dimension

这是我用来绘制它的代码。 a和b是2个数组。

line, = plt.plot(b, a, 'bs', markersize=4) 

回答

2

你刚刚得到了你的阵列错误的方式。转置他们,一切都应该工作。

>>> from matplotlib import pyplot as plt 
>>> import numpy as np 
>>> x = np.array(range(1,129)) 
>>> y = np.random.rand(14,128) 
>>> plt.plot(x, y) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 2286, in plot 
    ret = ax.plot(*args, **kwargs) 
    File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 3783, in plot 
    for line in self._get_lines(*args, **kwargs): 
    File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 317, in _grab_next_args 
    for seg in self._plot_args(remaining, kwargs): 
    File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 294, in _plot_args 
    x, y = self._xy_from_xy(x, y) 
    File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 234, in _xy_from_xy 
    raise ValueError("x and y must have same first dimension") 
ValueError: x and y must have same first dimension 
>>> plt.plot(x.T, y.T) 
# works 
+0

感谢您的帮助! – dawnoflife

4

此错误时显示的a和b(来自实施例以上服用)的大小是不一样的 - 因此,这里128 x值应针对 y值被绘制。