Python 绘图时进行Matplotlib绘图
请参阅matplotlib绘图代码,但有时会出现以下错误Python 绘图时进行Matplotlib绘图,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,请参阅matplotlib绘图代码,但有时会出现以下错误 if np.any(harmonics == 1) or np.any(harmonics == -1): for j in range (0,len(harmonics)): if harmonics[j] == 1 or harmonics[j]==-1: pats+=1 sense = 'Bearish ' if harmon
if np.any(harmonics == 1) or np.any(harmonics == -1):
for j in range (0,len(harmonics)):
if harmonics[j] == 1 or harmonics[j]==-1:
pats+=1
sense = 'Bearish ' if harmonics[j]==-1 else 'Bullish '
label = sense + labels[j] + ' found'
print(label)
plt.title(label)
plt.plot(np.arange(start,i+15),price.values[start:i+15])
plt.scatter(current_idx,current_pat,c='r')
filename = str(uuid.uuid1())[:8]
print(filename)
plt.savefig(filename)
plt.close(filename)
plt.show()
跟踪错误,当我使用相同的代码输入大量数据时,它正在工作,但如果使用较少的数据,则同样失败
Traceback (most recent call last):
File "peaks_vis-san.py", line 99, in <module>
plt.plot(np.arange(start,i+15),price.values[start:i+15])
File "/usr/local/lib64/python3.6/site-packages/matplotlib/pyplot.py", line 2763, in plot
is not None else {}), **kwargs)
File "/usr/local/lib64/python3.6/site-packages/matplotlib/axes/_axes.py", line 1646, in plot
lines = [*self._get_lines(*args, data=data, **kwargs)]
File "/usr/local/lib64/python3.6/site-packages/matplotlib/axes/_base.py", line 216, in __call__
yield from self._plot_args(this, kwargs)
File "/usr/local/lib64/python3.6/site-packages/matplotlib/axes/_base.py", line 342, in _plot_args
raise ValueError(f"x and y must have same first dimension, but "
ValueError: x and y must have same first dimension, but have shapes (41,) and (34,)
回溯(最近一次呼叫最后一次):
文件“peaks_vis-san.py”,第99行,在
plt.plot(np.arange(开始,i+15),price.values[开始:i+15])
文件“/usr/local/lib64/python3.6/site packages/matplotlib/pyplot.py”,第2763行,在plot中
不是别的{},**kwargs)
文件“/usr/local/lib64/python3.6/site packages/matplotlib/axes/_axes.py”,第1646行,在绘图中
行=[*self.\u获取行(*args,data=data,**kwargs)]
文件“/usr/local/lib64/python3.6/site packages/matplotlib/axes/_base.py”,第216行,在调用中__
从自身获得的收益。_plot_args(本,kwargs)
文件“/usr/local/lib64/python3.6/site packages/matplotlib/axes/_base.py”,第342行,位于绘图参数中
提升值错误(f“x和y必须具有相同的第一个尺寸,但”
ValueError:x和y必须具有相同的第一维度,但具有形状(41,)和(34,)
所以我认为当你使用较少的数据集时,你代码中的“值”列表的长度就不够了
plt.plot(np.arange(start,i+15),price.values[start:i+15])
price.values列表在i+15之前没有索引,python不会引发错误
这里假设你想要列表中给出的值,
例如
list = [1,2,3,4]
print(list[0:10])
你会得到这样的输出
[1, 2, 3, 4]
因此,要绘制的x,y值的长度不同,matplotlib.plot不接受这一点,为了解决这个问题,可以对x值进行此操作
np.arange(start,min(len(price.values), i + 15))
但是要注意,如果在ur代码中的任何一个pt处,值的长度预计为i+15,那么它可能会中断
希望它能帮助您请确保您发布的任何代码都能正确运行。目前,您从未定义迭代变量
i
,因此代码将失败。但是,我可以告诉您,您看到的错误意味着您正试图绘制两个不同大小的数组。plt.plot
需要大小相同的数组由于您似乎对堆栈溢出不熟悉,请阅读