使用python中的循环进行多重绘图

时间:2019-05-16 08:04:55

标签: python plot graph pyqt pyqt5

我有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个图。

我该怎么做?如何使用循环和数组实现多个绘图?

0 个答案:

没有答案