我有x个数据,
x_data:[[-210.99],[210.666],[553.211],[123.332],.....[234.121]]
如果我有n
列,则y1,y2,...yn
应该用x_data
绘制,以便在一张图中可以看到n个数据。我还使用幻灯片来可视化每个列数据的清晰视图。为了以幻灯片形式显示数据,我将y1, y2,...yn
的每个数据用x_data
分成5个数据。
例如,如果我有列为Col-1和Col-2,则:
y1=[[10.556],[12.5687],[44.5568],...[66.6679]]
y2=[[10.4075],[12.5456],[23.5456],...[76.567]]
使用x_data
分割y1,y2的分割数据时,应将其绘制成多个并显示为幻灯片。为此,我组合成一个数组
splitArraylist=[array[[10.556],[12.5687],[44.5568],...[66.6679]]),array([[10.4075],[12.5456],[23.5456],...[76.567]])]
我尝试过的是:
checked_list=[1,2]
gvalue=5
self.XY(splitArraylist)
def XY(self,y):
y1=np.array(y)
for i in range(len(checked_list)):
self.splitXy(y1[i][0])
self.graphXY()
def splitXy(self,res):
current_iter=0
#Splitting each data of y1 into 5 graphs
for j in range(gvalue):
x_data.append(x[current_iter:current_iter+iters])
y_data.append(res[current_iter:current_iter+iters])
current_iter=current_iter+iters
def graphXY(self):
global cp, loopbool
for j in range(len(checked_list)*gvalue):
if loopbool == True:
n_graphs.append(str(j + 1))
cp = int(n_graphs[len(n_graphs)- 1])
#PLotting each set of data in y1 and y2 with x_data
self.plotDraw(x_data[j],y_data[j])
loop = QEventLoop()
QTimer.singleShot(int(sec_value), loop.quit)
loop.exec_()
j = j + 1
def plotDraw(self, x0, y0):
self.MplWidget.canvas.axes.clear()
self.MplWidget.canvas.axes.plot(x0, y0)
self.MplWidget.canvas.axes.legend(('cosinus', 'sinus'), loc='upper right')
self.MplWidget.canvas.axes.set_title('Signal')
self.MplWidget.canvas.draw()
当前数据正在一个接一个地绘制。这是第一组数据y1并被分割和绘制。然后绘制下一列y2并显示为幻灯片。
我实际上希望y1和y2数据出现在单个图形中并以幻灯片形式显示。 (即)对于幻灯片放映的第一个图,y1和y2的第一个拆分数据出现在一个图中,然后y1和y2的第二个拆分数据……同样应该有5个图。
我该怎么做?如何使用循环和数组实现多个绘图?