我正在尝试使用numpy和matplotlib绘制散点图。它很简单,我有2个数据文件,每个包含单列数据集。两个文件都有相同数量的数据(我已经反复检查过这一点以确保)。
这就是我所做的:
import numpy as np
import pylab as pl
xdata = np.loadtxt('data.txt')
ydata = np.loadtxt('data1.txt')
pl.plot(xdata, ydata, 'ro')
pl.show()
它给了我这个错误
File "C:/1aProjects/Python_Aryo/Plotting/test_plot.py", line 10, in <module>
pl.plot(xdata, ydata, 'ro')
File "C:\Python34\lib\site-packages\matplotlib\pyplot.py", line 2987, in plot
ret = ax.plot(*args, **kwargs)
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 4144, in plot
for line in self._get_lines(*args, **kwargs):
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 319, in _grab_next_args
for seg in self._plot_args(remaining, kwargs):
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 297, in _plot_args
x, y = self._xy_from_xy(x, y)
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 239, in _xy_from_xy
raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
它表示数据的维度不同。
然后我试图仅在某个范围内进行绘图,并且它可以工作,但直到第72402行,如下所示。
pl.plot(xdata[0:72402], ydata[0:72402], 'ro')
如果我放了超过72402的东西,它会给我同样的错误信息。告诉我阵列的大小不一样。我的数据实际上有72413行!它只有11行!不是很烦人吗?
有人可以帮忙吗?
答案 0 :(得分:1)
它试图绘制x和y变量,如散点图中所示。两个向量需要具有相同的长度,这就是为什么你看到你能够绘制到两个长度中最小的一个。没有绕过它。两个阵列的长度显然不相等。