def plotLightCurve(self, star): # clears anything that's already there self.clearLightCurve() self.clearText() self.showText(star) fluxes = [] times = self._app._timeInput.timeValues # get the fluxes from the table i = 1 while i <= len(times): fluxes.append(self.starTable[star]["flux" + str(i)]) i += 1 # plot the figure and set axis etc fig = Figure() fig.set_size_inches(5, 4, forward=True) self.a = fig.add_subplot(111) self.a.plot(times, fluxes, '-x') self.a.set_title("Light Curve for star " + str(star + 1), fontsize=11) self.a.set_ylabel("Change in Magnitude", fontsize=10) self.a.set_xlabel("Time (days)", fontsize=10) # rotate y axis numbers so it fits better for tick in self.a.get_yticklabels(): tick.set_rotation(65) fig.align_xlabels() self.a.tick_params(axis='x', labelsize=8) self.a.tick_params(axis='y', labelsize=8) self.lightCurve = FigureCanvasTkAgg(fig, master=self._app) self.lightCurve.get_tk_widget().place(relx=0.4, rely=0.4) self.lightCurve.draw()
class Ui_Form_linecut(QDialog): def __init__(self, data): super(Ui_Form_linecut, self).__init__() self.setObjectName("Form") self.resize(874, 726) self.data = data self.horizontalLayout = QtWidgets.QHBoxLayout(self) self.horizontalLayout.setObjectName("horizontalLayout") self.cmap = 'RdBu' self.width = 8 self.height = 8 self.dpi = 100 self.fig = Figure(figsize=(self.width, self.height), dpi=self.dpi) self.canvas = FigureCanvas(self.fig) self.ax = self.fig.add_subplot(111) self.ax.pcolormesh(data, cmap=self.cmap) self.ax.axis('off') self.font1 = {'family': 'Arial', 'weight': 'normal', 'size': 22} self.ax.tick_params(labelsize=22) self.fig.align_xlabels() self.canvas.draw() self.line = Line2D((0, 0), (0, 0), color='red', linewidth=2, linestyle='solid') self.ax.add_line(self.line) self.ax.figure.canvas.mpl_connect('button_press_event', self.on_press) self.ax.figure.canvas.mpl_connect('button_motion_event', self.on_motion) self.ax.figure.canvas.mpl_connect('button_release_event', self.on_release) self.retranslateUi(self) self.horizontalLayout.addWidget(self.canvas) QtCore.QMetaObject.connectSlotsByName(self) def on_press(self, event): self.x0 = int(event.xdata) self.y0 = int(event.ydata) self.x1 = int(event.xdata) self.y1 = int(event.ydata) #self.line=Line2D((self.x0,self.x1),(self.y0,self.y1),color ='red',linewidth=2,linestyle='solid') def on_motion(self, event): if self.on_press is True: return self.x1 = int(event.xdata) self.y1 = int(event.ydata) #self.line=Line2D((self.x0,self.x1),(self.y0,self.y1),color ='red',linewidth=2,linestyle='solid') def on_release(self, event): self.x1 = int(event.xdata) self.y1 = int(event.ydata) self.line = Line2D((self.x0, self.x1), (self.y0, self.y1), color='red', linewidth=2, linestyle='solid') self.XPoint = [int(self.x0), int(self.x1)] self.YPoint = [int(self.y0), int(self.y1)] self.ax.add_line(self.line) self.line.set_visible(True) self.ax.figure.canvas.draw() def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Cut_Figure"))