在python中绘制时的ValueError

时间:2011-08-19 12:33:50

标签: python matplotlib

我想使用matplotlib的绘图方法并绘制2个数组。沿x轴绘制的阵列有1行和128列[1,128]。沿y轴绘制的阵列具有14行和128列[14,128]。当我尝试使用plot方法时,它会返回以下消息:

  

ValueError:x和y必须具有相同的第一维

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

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

2 个答案:

答案 0 :(得分:4)

当a和b的大小(取自上面的示例)不相同时,会出现此错误 - 因此,此处的128 x值应针对 128 y值进行绘制。

答案 1 :(得分: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