コード例 #1
0
ファイル: MusicPlot.py プロジェクト: T-13/DroneTasks
class MusicPlot(FigureCanvas):
    def __init__(self):
        # Init stuff
        self.fig = Figure(tight_layout=True)
        self.axes = self.fig.add_subplot(111)

        FigureCanvas.__init__(self, self.fig)
        self.plotnav = NavigationToolbar(self.fig.canvas, self)
        self.plotnav.setStyleSheet("QToolBar { border: 0px }")
        self.plotnav.setOrientation(Qt.Vertical)
        self.plotnav.setMaximumWidth(35)

        self.background = None
        self.line = None
        self.xmin = 0
        self.xmax = 0

    def plot(self, data_time, data_samples, step):
        # Plot data
        self.axes.margins(x=0)
        self.axes.plot(data_time[0::step], data_samples[0::step], "-")
        self.fig.canvas.draw()

        self.xmin, self.xmax = self.axes.get_xlim()

    def drawHLine(self, X):
        if self.background:
            if self.xmax < X:
                X = self.xmax
            self.line.set_xdata([X])
            self.fig.canvas.restore_region(self.background)
            self.axes.draw_artist(self.line)
            self.fig.canvas.blit(self.fig.bbox)

    def initBackground(self):
        self.background = self.fig.canvas.copy_from_bbox(self.fig.bbox)
        if not self.line:
            self.line = self.axes.axvline(0, color='r')

    def addLabel(self, text, label):
        if label == "X" or label == "x":
            self.axes.set_xlabel(text)
        elif label == "Y" or label == "y":
            self.axes.set_ylabel(text)