| 559 | self.manager.xy[nonempty, self._curr_frame] = coords |
| 560 | |
| 561 | def flag_frame(self, *args): |
| 562 | self.cuts.append(self.curr_frame) |
| 563 | self.ax_slider.axvline(self.curr_frame, color="r") |
| 564 | if len(self.cuts) == 2: |
| 565 | self.cuts.sort() |
| 566 | mask = np.zeros_like(self.manager.times, dtype=bool) |
| 567 | mask[self.cuts[0] : self.cuts[1] + 1] = True |
| 568 | for ax in self.ax2, self.ax3: |
| 569 | ax.fill_between( |
| 570 | self.manager.times, |
| 571 | *ax.dataLim.intervaly, |
| 572 | mask, |
| 573 | facecolor="darkgray", |
| 574 | alpha=0.2, |
| 575 | ) |
| 576 | trans = mtransforms.blended_transform_factory(self.ax_slider.transData, self.ax_slider.transAxes) |
| 577 | self.ax_slider.vlines(np.flatnonzero(mask), 0, 0.5, color="darkorange", transform=trans) |
| 578 | self.fig.canvas.draw_idle() |
| 579 | |
| 580 | def on_scroll(self, event): |
| 581 | cur_xlim = self.ax1.get_xlim() |