Example #1
0
    def trace(self, twin=None):
        # TODO: should we just handle events in parse_ion_string?
        name_type = istr_type(self.name.lower())
        # FIXME!!!!!
        if name_type == "events":
            return AstonSeries()

        # get a trace given my name
        tr_resolver = self.paletterun.trace
        trace = parse_ion_string(self.name.lower(), tr_resolver, twin)

        if trace is None:
            self.is_valid = False
            return None
        else:
            self.is_valid = True

        # offset and scale trace
        trace = trace * self.y_scale + self.y_offset
        if type(trace) is AstonSeries:
            trace = trace.adjust_time(offset=self.x_offset, scale=self.x_scale)
        else:
            trace = AstonSeries([trace], [0], name=self.name.lower())

        return trace
Example #2
0
 def plot(self, ax, style, color, twin=None):
     name_type = istr_type(self.name.lower())
     label = self.paletterun.run.name + " " + self.name
     if name_type == "events":
         df = self.paletterun.datafile(self.name.lower())
         evts = df.events(self.name.lower().lstrip("*"))
         plot_events(evts, color=color, ax=ax)
     elif style in {"heatmap", "colors"}:
         # TODO: should only be on name_type == '2d' ?
         # need other ui changes first though
         # TODO: use colors
         self.frame(twin).plot(style=style, color=color, ax=ax)
     else:
         # TODO: should technically only be allowed on 1d plots
         trace = self.trace(twin)
         if trace is None:
             return
         ls = {"solid": "-", "dash": "--", "dot": ":", "dash-dot": "-."}
         trace.plot(ax=ax, style=ls[style], color=color, label=label)
Example #3
0
 def name_type(self):
     return istr_type(self.name.lower())