Changeset ef01be4 in sasview for src/sas/qtgui/Plotter2D.py
- Timestamp:
- Dec 2, 2016 2:28:23 AM (8 years ago)
- Branches:
- ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
- Children:
- b94889a
- Parents:
- ded2ce3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/Plotter2D.py
r31c5b58 ref01be4 18 18 import sas.qtgui.PlotUtilities as PlotUtilities 19 19 import sas.qtgui.PlotHelper as PlotHelper 20 from sas.qtgui.PlotterBase import PlotterBase 20 21 21 class Plotter2D(QtGui.QDialog): 22 def __init__(self, parent=None): 23 super(Plotter2D, self).__init__(parent) 24 25 # Required for the communicator 26 self.parent = parent 27 28 # a figure instance to plot on 29 self.figure = plt.figure() 30 31 # this is the Canvas Widget that displays the `figure` 32 # it takes the `figure` instance as a parameter to __init__ 33 self.canvas = FigureCanvas(self.figure) 34 35 # this is the Navigation widget 36 # it takes the Canvas widget and a parent 37 self.toolbar = NavigationToolbar(self.canvas, self) 38 39 # set the layout 40 layout = QtGui.QVBoxLayout() 41 layout.addWidget(self.canvas) 42 layout.addWidget(self.toolbar) 43 self.setLayout(layout) 44 45 # defaults 46 self._current_plot = 111 47 self._data = [] 48 self._qx_data = [] 49 self._qy_data = [] 50 self._color=0 51 self._symbol=0 52 self._scale = 'linear' 53 54 # default color map 55 self._cmap = DEFAULT_CMAP 56 57 self._ax = self.figure.add_subplot(self._current_plot) 58 59 # Notify the helper 60 PlotHelper.addPlot(self) 61 # Notify the listeners 62 self.parent.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots()) 22 class Plotter2D(PlotterBase): 23 def __init__(self, parent=None, quickplot=False): 24 super(Plotter2D, self).__init__(parent, quickplot=quickplot) 63 25 64 26 @property … … 70 32 """ data setter """ 71 33 self._data = data 72 self. _qx_data=data.qx_data73 self. _qy_data=data.qy_data74 self. _xmin=data.xmin75 self. _xmax=data.xmax76 self. _ymin=data.ymin77 self. _ymax=data.ymax78 self. _zmin=data.zmin79 self. _zmax=data.zmax80 self. _label=data.name81 self.x _label(xlabel=data._xaxis + data._xunit)82 self.y _label(ylabel=data._yaxis + data._yunit)34 self.qx_data=data.qx_data 35 self.qy_data=data.qy_data 36 self.xmin=data.xmin 37 self.xmax=data.xmax 38 self.ymin=data.ymin 39 self.ymax=data.ymax 40 self.zmin=data.zmin 41 self.zmax=data.zmax 42 self.label=data.name 43 self.xLabel(xlabel="%s(%s)"%(data._xaxis, data._xunit)) 44 self.yLabel(ylabel="%s(%s)"%(data._yaxis, data._yunit)) 83 45 self.title(title=data.title) 84 85 def title(self, title=""):86 """ title setter """87 self._title = title88 89 def id(self, id=""):90 """ id setter """91 self._id = id92 93 def x_label(self, xlabel=""):94 """ x-label setter """95 self._xlabel = r'$%s$'% xlabel96 97 def y_label(self, ylabel=""):98 """ y-label setter """99 self._ylabel = r'$%s$'% ylabel100 101 def clean(self):102 """103 Redraw the graph104 """105 self.figure.delaxes(self._ax)106 self._ax = self.figure.add_subplot(self._current_plot)107 46 108 47 def plot(self, marker=None, linestyle=None): … … 110 49 Plot 2D self._data 111 50 """ 112 # create an axis 113 ax = self. _ax51 # create an axis object 52 ax = self.ax 114 53 115 54 # graph properties 116 ax.set_xlabel(self._xlabel) 117 ax.set_ylabel(self._ylabel) 118 ax.set_title(label=self._title) 55 ax.set_xlabel(self.x_label) 56 ax.set_ylabel(self.y_label) 57 # Title only for regular charts 58 if not self.quickplot: 59 ax.set_title(label=self.title) 119 60 120 61 # Re-adjust colorbar 121 #self.figure.subplots_adjust(left=0.2, right=.8, bottom=.2)62 self.figure.subplots_adjust(left=0.2, right=.8, bottom=.2) 122 63 123 output = PlotUtilities.build_matrix(self._data.data, self. _qx_data, self._qy_data)64 output = PlotUtilities.build_matrix(self._data.data, self.qx_data, self.qy_data) 124 65 125 66 im = ax.imshow(output, 126 67 interpolation='nearest', 127 68 origin='lower', 128 vmin=self. _zmin, vmax=self._zmax,129 cmap=self. _cmap,130 extent=(self. _xmin, self._xmax,131 self. _ymin, self._ymax))69 vmin=self.zmin, vmax=self.zmax, 70 cmap=self.cmap, 71 extent=(self.xmin, self.xmax, 72 self.ymin, self.ymax)) 132 73 133 74 cbax = self.figure.add_axes([0.84, 0.2, 0.02, 0.7]) … … 138 79 # Schedule the draw for the next time the event loop is idle. 139 80 self.canvas.draw_idle() 140 141 def closeEvent(self, event):142 """143 Overwrite the close event adding helper notification144 """145 # Please remove me from your database.146 PlotHelper.deletePlot(PlotHelper.idOfPlot(self))147 # Notify the listeners148 self.parent.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots())149 event.accept()150
Note: See TracChangeset
for help on using the changeset viewer.