def test_get_plot_fig_return_same_figure_with_updated_axis_number(self): initial_fig = plt.Figure() fig, axes = get_plot_fig(overplot=False, fig=initial_fig, axes_num=5) self.assertEqual(fig, initial_fig) self.assertEqual(6, len(fig.axes))
def __init__(self, quick_edit, settings, parent=None): super().__init__(parent) # later we will allow these to be changed in the settings self._settings = settings self._min_y_range = settings.min_y_range self._y_axis_margin = settings.y_axis_margin self._x_tick_labels = None self._y_tick_labels = None # create the figure self.fig = Figure() self.fig.canvas = FigureCanvas(self.fig) self.fig.canvas.setMinimumHeight(500) self.toolBar = PlotToolbar(self.fig.canvas, self) # Create a set of Mantid axis for the figure self.fig, axes = get_plot_fig(overplot=False, ax_properties=None, axes_num=1, fig=self.fig) self._number_of_axes = 1 self._color_queue = [ColorQueue(DEFAULT_COLOR_CYCLE)] # Add a splitter for the plotting canvas and quick edit toolbar splitter = QtWidgets.QSplitter(QtCore.Qt.Vertical) splitter.addWidget(self.fig.canvas) self._quick_edit = quick_edit splitter.addWidget(self._quick_edit) splitter.setChildrenCollapsible(False) layout = QtWidgets.QVBoxLayout() layout.addWidget(self.toolBar) layout.addWidget(splitter) self.setLayout(layout) self._plot_information_list = [] # type : List[PlotInformation}
def test_get_plot_fig_returns_same_figure_and_axes_if_figure_provided_and_overplot_is_true(self): initial_fig = plt.Figure() fig, axes = get_plot_fig(overplot=True, fig=initial_fig) self.assertEqual(fig, initial_fig) self.assertEqual(0, len(fig.axes))
def new_plot_figure(self, num_axes): self.fig.clf() if num_axes < 1: num_axes = 1 self.fig, axes = get_plot_fig(overplot=False, ax_properties=None, axes_num=num_axes, fig=self.fig) self.fig.tight_layout() self.fig.canvas.draw()
def test_get_plot_fig_with_overplot_true_maintains_axes_scales(self): ax = plt.gca() ax.set_xscale('log') ax.set_yscale('log') fig, axes = get_plot_fig(overplot=True) self.assertEqual(axes[0].get_xscale(), 'log') self.assertEqual(axes[0].get_yscale(), 'log')
def test_get_plot_fig_with_no_figure_provided_and_overplot_is_true_returns_new_figure(self): initial_fig = plt.Figure() set_figure_as_current_figure(initial_fig) # If not figure is provided we provide a user a new figure plot, since this allows # overplotting in a loop, which requires there to be a figure with an associated axis fig, axes = get_plot_fig(overplot=True) self.assertNotEqual(fig, initial_fig) self.assertNotEqual(0, len(fig.axes))
def create_new_plot_canvas(self, num_axes): """Creates a new blank plotting canvas""" self._plot_information_list = [] self._number_of_axes = num_axes self.fig.clf() self.fig, axes = get_plot_fig(overplot=False, ax_properties=None, axes_num=num_axes, fig=self.fig) self.fig.tight_layout() self.fig.canvas.draw()
def create_new_plot_canvas(self, num_axes): """Creates a new blank plotting canvas""" self.toolBar.reset_gridline_flags() self._plot_information_list = [] self._number_of_axes = num_axes self._color_queue = [ ColorQueue(DEFAULT_COLOR_CYCLE) for _ in range(num_axes) ] self.fig.clf() self.fig, axes = get_plot_fig(overplot=False, ax_properties=None, axes_num=num_axes, fig=self.fig) self.fig.tight_layout() self.fig.canvas.draw()
def __init__(self, parent=None): super().__init__(parent) # create the figure self.fig = Figure() self.fig.canvas = FigureCanvas(self.fig) self.toolBar = PlotToolbar(self.fig.canvas, self) # Create a set of Mantid axis for the figure self.fig, axes = get_plot_fig(overplot=False, ax_properties=None, axes_num=1, fig=self.fig) self._number_of_axes = 1 layout = QtWidgets.QVBoxLayout() layout.addWidget(self.toolBar) layout.addWidget(self.fig.canvas) self.setLayout(layout) self._plot_information_list = [] # type : List[PlotInformation}
def _create_external_workbench_fig_window(self): from mantid.plots.plotfunctions import get_plot_fig external_fig, _ = get_plot_fig(axes_num=self.number_of_axes) return external_fig
def test_no_figure_provided_and_overplot_is_false_returns_new_figure_with_correct_axes_number(self): fig, axes = get_plot_fig(overplot=False, axes_num=5) self.assertEqual(6, len(fig.axes))
def setup_interface(self): self.setObjectName("PlotWidget") self.resize(500, 100) self.plot_label = QtWidgets.QLabel(self) self.plot_label.setObjectName("plotLabel") self.plot_label.setText("Plot type : ") self.tiled_type_label = QtWidgets.QLabel(self) self.tiled_type_label.setObjectName("tileTypeLabel") self.tiled_type_label.setText("Tile plots by: ") self.raw = QtWidgets.QCheckBox("plot raw", self) self.raw.setChecked(True) self.plot_selector = QtWidgets.QComboBox(self) self.plot_selector.setObjectName("plotSelector") self.plot_selector.addItems(["Asymmetry", "Counts"]) self.plot_selector.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) self.plot_type_selector = QtWidgets.QCheckBox(parent=self) self.plot_type_selector.setChecked(False) self.plot_type_selector.setObjectName("plotTypeSelector") self.plot_type_selector.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) self.tile_type_selector = QtWidgets.QComboBox(self) self.tile_type_selector.setObjectName("tileTypeSelector") self.tile_type_selector.addItems(["Group/Pair", "Run"]) self.horizontal_layout = QtWidgets.QHBoxLayout() self.horizontal_layout.setObjectName("horizontalLayout") self.horizontal_layout.addWidget(self.plot_label) self.horizontal_layout.addWidget(self.plot_selector) self.horizontal_layout.addSpacing(15) self.horizontal_layout.addStretch(0) self.horizontal_layout.addWidget(self.plot_type_selector) self.horizontal_layout.addWidget(self.tiled_type_label) self.horizontal_layout.addWidget(self.tile_type_selector) self.horizontal_layout.addSpacing(15) self.horizontal_layout.addStretch(0) self.horizontal_layout.addWidget(self.raw) self.horizontal_layout.addStretch(0) self.horizontal_layout.addSpacing(50) # plotting options self.plot_options = QuickEditWidget(self) self.plot_options.widget.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) self.vertical_layout = QtWidgets.QVBoxLayout() self.vertical_layout.setObjectName("verticalLayout") self.vertical_layout.addItem(self.horizontal_layout) self.group = QtWidgets.QGroupBox("Plotting") self.group.setFlat(False) self.setStyleSheet( "QGroupBox {border: 1px solid grey;border-radius: 10px;margin-top: 1ex; margin-right: 0ex}" "QGroupBox:title {" 'subcontrol-origin: margin;' "padding: 0 3px;" 'subcontrol-position: top center;' 'padding-top: 0px;' 'padding-bottom: 0px;' "padding-right: 10px;" ' color: grey; }') self.group.setLayout(self.vertical_layout) # create the figure self.fig = Figure() self.fig.canvas = FigureCanvas(self.fig) self.toolBar = NavigationToolbar(self.fig.canvas, self) # set size policy self.toolBar.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) # Create a set of Mantid axis for the figure self.fig, axes = get_plot_fig(overplot=False, ax_properties=None, axes_num=1, fig=self.fig) self.widget_layout = QtWidgets.QVBoxLayout(self) self.widget_layout.addWidget(self.group) self.vertical_layout.addWidget(self.toolBar) self.vertical_layout.addWidget(self.fig.canvas) self.vertical_layout.addWidget(self.plot_options.widget) self.setLayout(self.widget_layout)