class TraceYonly: def __init__(self, descrStr): self.descr = descrStr self.y = None self.ylabel = None self.yunit = None def plot(self): import matplotlib.pyplot as plt plt.plot(self.y, label=self.descr) plt.legend() class Trace(TraceYonly): def __init__(self, descrStr): super().__init__(descrStr) self.x = None self.xlabel = None self.xunit = None def plot(self): import matplotlib.pyplot as plt plt.plot(self.x, self.y, label=self.descr) plt.legend() class TraceSetSameX: def __init__(self, descrStr): self.descr = descrStr self.x = None self.xlabel = None self.xunit = None self.traces={} def addTrace(self, tr): if len(self.traces) == 0: self.x = tr.x self.xlabel = tr.xlabel self.xunit = tr.xunit trY = TraceYonly(tr.descr) trY.y = tr.y trY.ylabel = tr.ylabel trY.yunit = tr.yunit self.traces[trY.descr]=trY def plot(self): import matplotlib.pyplot as plt for k, v in self.traces.items(): plt.plot(self.x, v.y, label=v.descr) plt.legend()