示例#1
0
文件: Plot.py 项目: Tweak161/finance
    def __init__(self, parent=None, mw=None, width=5, height=4, dpi=100):
        super(QWidget, self).__init__(parent)
        self.fig = Figure()
        self.canvas = Canvas(self.fig)
        self.canvas.setParent(parent)
        self.toolbar = NavigationToolbar(self.canvas, self)
        # set the layout
        l1 = QVBoxLayout(parent)
        l1.addWidget(self.toolbar)
        l1.addWidget(self.canvas)

        self.axes = self.fig.add_subplot(111)
        self.axes2 = self.axes.twinx()
        self.fig.sca(self.axes)

        self.setParent(parent)

        self.data_list = []
        self.legend_list = []
        self.data_list_2 = []
        self.legend_list_2 = []
        self.title = ''

        self.left_lim = None
        self.right_lim = None

        self.plot_type = ''
示例#2
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        # self.fig = Figure((10.0, 10.0), dpi=100)
        self.fig = plt.figure(figsize=(10.0, 10.0), dpi=100)
        self.canvas = Canvas(self.fig)

        self.vbl = QtGui.QVBoxLayout()
        self.vbl.addWidget(self.canvas)
        self.setLayout(self.vbl)
示例#3
0
    def __init__(self,
                 parent=None,
                 width=5,
                 height=4,
                 dpi=80,
                 filename=None,
                 model=None,
                 plot_type='Image',
                 trace_num=None,
                 region=[]):
        # plot paramters #
        self.t_num = trace_num
        self.region = region

        # connect model signal #
        self.model = model
        self.model.dataChanged.connect(self.update_views)

        # create a dictionary of views
        self.view_options = {
            'Image': self.view_image,
            'TracePlot': self.view_trace,
            'PSD': self.view_psd,
            'Surface': self.view_surface
        }
        super(View, self).__init__(parent)

        # make the figure
        self.figure = Figure((width, height), dpi)
        fig_color = (1.0, 1.0, 1.0, 1.0)
        self.figure.set_facecolor(fig_color)
        # create the canvas
        self.canvas = Canvas(self.figure)
        self.canvas.setParent(self)

        # create the toolbar and tie it to the canvas
        self.toolbar = Toolbar(self.canvas, self)
        self.layout = QtGui.QVBoxLayout()
        self.layout.addWidget(self.canvas)
        self.setLayout(self.layout)
        if filename:
            self.setWindowTitle(plot_type + ': ' + filename)

        if plot_type == 'Surface':
            self.axes = self.figure.gca(projection='3d')
        else:
            self.axes = self.figure.add_subplot(111)

        self.axes.hold(False)

        self.view_options[plot_type]()
        self.canvas.show()
示例#4
0
    def __init__(self,
                 parent=None,
                 title='Title',
                 xlabel='',
                 ylabel='',
                 dpi=100,
                 hold=False):
        super(MatplotlibWidget, self).__init__(Figure())

        self.setParent(parent)
        self.figure = Figure(dpi=dpi)
        self.figure.set_frameon(False)
        self.canvas = Canvas(self.figure)
        self.theplot = self.figure.add_subplot(111)
示例#5
0
文件: Plot.py 项目: Tweak161/finance
    def __init__(self,
                 parent=None,
                 show_bar='False',
                 width=5,
                 height=4,
                 dpi=100):
        super(QWidget, self).__init__(parent)
        self.fig = Figure()
        self.canvas = Canvas(self.fig)
        self.canvas.setParent(parent)
        # set the layout
        self.setLayout(QVBoxLayout())
        self.layout().setContentsMargins(0, 0, 0, 0)
        self.layout().setSpacing(0)

        self.canvas.draw()
        self.scroll = QScrollArea(self)
        self.scroll.setWidget(self.canvas)
        self.layout().addWidget(self.scroll)

        # l1 = QVBoxLayout(parent)
        # l1.setContentsMargins(0, 0, 0, 0)
        # l1.setSpacing(0)
        # l1.addWidget(self.canvas)

        # self.scroll = QScrollArea(self)
        # self.scroll.setWidget(self.canvas)
        #
        # l1.addWidget(self.scroll)

        self.axes = self.fig.add_subplot(111)
        self.fig.sca(self.axes)

        # self.setParent(parent)

        self.text_list = None
        self.show_bar = show_bar
        self.cbar = None
        self.i = None
        self.j = None

        self.fig.canvas.mpl_connect('button_press_event', self.onclick)
        self.fig.canvas.mpl_connect('scroll_event', self._on_mousewheel)
        self.sel_rect = None
示例#6
0
    def __init__(self, parent, x_dimension, y_dimension):
        super(PlotWidget, self).__init__(Figure())

        self.setParent(parent)
        self.figure = Figure((x_dimension, y_dimension))
        self.canvas = Canvas(self.figure)

        self.axes = self.figure.add_subplot(111)

        # navigation toolbar
        self.nav = NavigationToolbar(self.canvas, self)
        self.nav.hide()

        # background color = white
        self.figure.set_facecolor('white')

        # global variables
        self.x_limit = None

        self.plot_style()
示例#7
0
    def __init__(self, parent=None, width=3, height=3, dpi=100):

        super(MplGraphWidget, self).__init__(parent)

        self._dataY = np.array([])
        self._dataX = np.array([])

        self._spCols = 1
        self._spRows = 1
        self.all_sp_axes = []
        self.fig = Figure(figsize=(width, height), dpi=dpi)
        self.all_sp_axes.append(
            self.fig.add_subplot(self._spCols, self._spRows, 1))
        self.fig.set_frameon(False)
        self.fig.set_tight_layout(True)

        self.canvas = Canvas(self.fig)

        self._navBarOn = True
        self.mpl_toolbar = NavigationToolbar(self.canvas, parent)

        self.canvas.mpl_connect('key_press_event', self.on_key_press)
        self.canvas.mpl_connect('button_press_event', self.on_button_press)
        self.canvas.mpl_connect('motion_notify_event', self.on_mouse_move)
        self.canvas.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.canvas.setFocus()

        self.canvas.setParent(parent)
        self.canvas.clearMask()
        self.canvas.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                  QtGui.QSizePolicy.Expanding)
        self.canvas.updateGeometry()

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.canvas)
        if self._navBarOn:
            vbox.addWidget(self.mpl_toolbar)
        self.setLayout(vbox)
    def __init__(self, iface, parent=None, flags=Qt.WindowFlags()):
        QDialog.__init__(self, parent, flags)
        uic.loadUi(UI_PATH, self)

        self.iface = iface
        self.input_layer = None
        self.raster_layer = None
        self.roughness_layer = None
        #add channel info
        self.channel_info = None

        # self.name_box.setExpression('')
        # self.station_box.setExpression('')
        self.delta_box.setExpression('0.1')
        self.connection_box.setExpression("'standard'")
        self.type_box.setExpression("'river'")
        self.initial_box.setExpression('0.5')
        self.point_bc_enabled_box.setExpression('False')
        self.point_bc_stationary_box.setExpression('True')
        self.point_bc_value_box.setExpression('0')
        self.lateral_bc_enabled_box.setExpression('False')
        self.lateral_bc_stationary_box.setExpression('True')
        self.lateral_bc_value_box.setExpression('0')
        self.overflow_left_enabled_box.setExpression('True')
        self.overflow_left_poleni_box.setExpression('0.577')
        self.overflow_right_enabled_box.setExpression('True')
        self.overflow_right_poleni_box.setExpression('0.577')
        self.localbridgeheight_box.setExpression('1.5')
        self.bridgebodyheight_box.setExpression('4.0')

        self.groupBox_bridge.setCollapsed(True)
        self.mGroupBox_6.setCollapsed(True)
        self.mGroupBox.setCollapsed(True)
        self.mGroupBox_4.setCollapsed(True)
        self.mGroupBox_3.setCollapsed(True)
        self.mGroupBox_2.setCollapsed(True)
        self.groupBox_main.setCollapsed(True)
        self.mGroupBox_4.setCollapsed(False)

        #set DGM layer
        self.raster_layer_box.setFilters(QgsMapLayerProxyModel.RasterLayer)
        self.raster_layer_box.layerChanged.connect(self.setRasterLayer)
        self.raster_band_box.setEnabled(False)

        self.method_box.addItem('nearest neighbor (downscaling/upscaling)')
        self.method_box.addItem('bi-linear (downscaling)')
        self.method_box.addItem('bi-cubic (downscaling)')

        #set roughness layer
        self.roughness_layer_box.setFilters(QgsMapLayerProxyModel.RasterLayer)
        self.roughness_layer_box.layerChanged.connect(self.setRoughnessLayer)
        self.roughness_layer_box.setLayer(None)

        #set channel layer
        self.comboBox_main.setFilters(QgsMapLayerProxyModel.PolygonLayer)
        self.comboBox_main.layerChanged.connect(self.setChannelLayer)
        self.comboBox_main.setLayer(None)

        self.browse_button.clicked.connect(self.onBrowseButtonClicked)
        self.HelpButton.clicked.connect(self.Help)
        self.iface.currentLayerChanged.connect(self.setInputLayer)

        #############################################
        #autostationing button function
        def autoclicked(state):
            if state > 0:
                self.profileid_box.setEnabled(True)
                self.station_box.setEnabled(False)
                self.preview_button.setDisabled(True)
            else:
                self.profileid_box.setEnabled(False)
                self.station_box.setEnabled(True)
                self.preview_button.setDisabled(False)

        self.profileid_box.setEnabled(False)
        self.autostation_box.stateChanged.connect(autoclicked)
        #############################################  
        
        if PREVIEW_ENABLED:
            self.figure = Figure(figsize=(10, 4), dpi=100)
            self.axes = self.figure.add_subplot(111)
            self.axes.set_xlabel('Stationing')
            self.axes.set_ylabel('Elevation [m+NHN]')
            self.figure.tight_layout()
            self.canvas = Canvas(self.figure)
            self.canvas.setParent(self)
            self.canvas.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
            self.layout().addWidget(self.canvas)
            self.canvas.setVisible(False)
            self.cursor = None
            self.preview_button.toggled.connect(self.canvas.setVisible)
            self.preview_button.toggled.connect(self.update_button.setEnabled)
            self.update_button.clicked.connect(self.updateLongitudinalPreview)
        else:
            self.preview_button.setDisabled(True)
            self.figure = None
            self.axes = None
            self.canvas = None
            self.cursor = None

        self.setInputLayer(self.iface.activeLayer())
        self.setRasterLayer(self.raster_layer_box.currentLayer())
示例#9
0
    def __init__(self, app, parent=None):
        start_time = time.time()
        super(GLUI, self).__init__(parent)
        self.app = app
        self.setGeometry(50, 50, 1000, 400)
        self.setWindowTitle("GLUI")
        self.setWindowIcon(QtGui.QIcon('images/GLUI_logo.png'))
        self.setPalette(PALETTE)

        self.thread_pool = QtCore.QThreadPool()
        self.current_bend_file = DEFAULT_BEND

        #self.machine = gcode_handler()
        self.machine = None
        self.scale = None

        #self.load_machine()
        #self.machine.init_code()
        #self.scale = scale_handler()

        self.grid = QtGui.QGridLayout()
        #self.setCentralWidget(self.grid)
        self.setLayout(self.grid)

        #self.main_window
        #self.flow_window
        #self.position_cal_wondow

        # Menu bar
        self.menu_bar = QtGui.QMenuBar(self)  #self.menuBar()
        self.load_menu()

        empty_lb = QtGui.QLabel()
        self.grid.addWidget(empty_lb, 0, 0)

        row_offset = 1

        # Drawing drop down
        self.current_drawing = DEFAULT_DRAWING
        self.draw_dd = QtGui.QComboBox()
        self.load_dd_draw()
        self.draw_dd.activated[str].connect(self.choose_drawing)
        self.grid.addWidget(self.draw_dd, 6 + row_offset, 1)
        self.draw_lb = QtGui.QLabel('Selected Drawing:')
        self.grid.addWidget(self.draw_lb, 6 + row_offset, 0)

        # Jig drop down
        self.current_jig = DEFAULT_JIG
        self.jig_dd = QtGui.QComboBox()
        self.load_dd_jig()
        self.jig_dd.activated[str].connect(self.choose_jig)
        self.grid.addWidget(self.jig_dd, 7 + row_offset, 1)
        self.jig_lb = QtGui.QLabel('Selected Jig:')
        self.grid.addWidget(self.jig_lb, 7 + row_offset, 0)

        # Grid drop down
        self.current_grid = DEFAULT_GRID
        self.grid_dd = QtGui.QComboBox()
        self.load_dd_grid()
        self.grid_dd.activated[str].connect(self.choose_grid)
        self.grid.addWidget(self.grid_dd, 8 + row_offset, 1)
        self.grid_lb = QtGui.QLabel('Selected Grid:')
        self.grid.addWidget(self.grid_lb, 8 + row_offset, 0)

        self.load_last_setup()

        # Reload cfg's
        self.cfg_btn = QtGui.QPushButton('Reload')
        self.cfg_btn.clicked.connect(
            lambda: self.launch_worker(self.reload_cfg,
                                       closing_func=[
                                           self.load_dd_draw,
                                           self.load_dd_grid,
                                           self.load_dd_jig,
                                       ]))
        self.grid.addWidget(self.cfg_btn, 9 + row_offset, 1)
        self.cfg_lb = QtGui.QLabel('Reload the configuration files:')
        self.grid.addWidget(self.cfg_lb, 9 + row_offset, 0)

        # Overview plot
        self.figure_ov, self.figure_ov_ax = plt.subplots()
        #self.figure_ov = plt.figure(figsize=(10,5))
        self.canvas_ov = Canvas(self.figure_ov)
        self.grid.addWidget(self.canvas_ov, 0 + row_offset, 0, 6, 2)
        self.plot_ov()

        # Calibrate position button and drop down
        self.pos_cal_idx = DEFAULT_POS_CAL_IDX
        self.pos_cal_idx_dd = QtGui.QComboBox()
        self.load_dd_pos_cal()
        self.pos_cal_idx_dd.activated[str].connect(self.choose_pos_cal_idx)
        self.grid.addWidget(self.pos_cal_idx_dd, 1 + row_offset, 3)

        self.position_cal_btn = QtGui.QPushButton('Calibrate')
        #self.position_cal_btn.clicked.connect(self.pos_cal)
        self.position_cal_btn.clicked.connect(
            lambda: self.launch_worker(self.pos_cal,
                                       check_func=[self.init_warning],
                                       closing_func=[self.load_dd_tilt_cal]))
        self.grid.addWidget(self.position_cal_btn, 1 + row_offset, 4)
        self.position_cal_lb = QtGui.QLabel('Calibrate position:')
        self.grid.addWidget(self.position_cal_lb, 1 + row_offset, 2)

        # Calibrate tilt button and drop down
        self.tilt_speed = 25
        self.pos_func_dict = None
        self.load_pos_func_dict()
        self.tilt_cal_idx = DEFAULT_TILT_CAL_IDX
        self.tilt_cal_idx_dd = QtGui.QComboBox()
        self.load_dd_tilt_cal()
        self.tilt_cal_idx_dd.activated[str].connect(self.choose_tilt_cal_idx)
        self.grid.addWidget(self.tilt_cal_idx_dd, 2 + row_offset, 3)
        self.load_tilt_dict()

        self.tilt_cal_btn = QtGui.QPushButton('Calibrate')
        #self.tilt_cal_btn.clicked.connect(self.tilt_cal)
        self.tilt_cal_btn.clicked.connect(lambda: self.launch_worker(
            self.tilt_cal,
            check_func=[
                self.init_warning,
                self.coo_dict_warning,
            ],
        ))
        self.grid.addWidget(self.tilt_cal_btn, 2 + row_offset, 4)
        self.tilt_cal_lb = QtGui.QLabel('Calibrate tilt:')
        self.grid.addWidget(self.tilt_cal_lb, 2 + row_offset, 2)

        # Glue selector
        self.scale = None
        q_list = ['Select Glue Type:', 'Glue Ceartion Time:']
        t_list = ['glue', 'time']
        self.glue_sel_a = [DEFAULT_GLUE, DEFAULT_GLUE_CT]
        self.current_glue = DEFAULT_GLUE
        self.current_glue_ts = DEFAULT_GLUE_CT
        self.current_flow = DEFAULT_FLOW
        self.current_pressure = DEFAULT_PRESSURE

        self.glue_window = q_box(q_list,
                                 t_list,
                                 self,
                                 'glue_sel_a',
                                 exit_functions=['load_glue_sel'])

        self.glue_set_btn = QtGui.QPushButton('Set Glue')
        self.glue_set_btn.clicked.connect(self.set_glue)
        self.grid.addWidget(self.glue_set_btn, 7 + row_offset, 4)

        self.glue_label = QtGui.QLabel()
        self.glue_ts_label = QtGui.QLabel()
        self.grid.addWidget(self.glue_label, 7 + row_offset, 2)
        self.grid.addWidget(self.glue_ts_label, 7 + row_offset, 3)

        # Calibrate flow
        self.flow_cal_btn = QtGui.QPushButton('Calibrate')
        self.flow_window = fit_window(self)
        self.flow_cal_btn.clicked.connect(self.flow_cal)
        self.grid.addWidget(self.flow_cal_btn, 3 + row_offset, 4)
        self.position_cal_lb = QtGui.QLabel('Calibrate flow:')
        self.grid.addWidget(self.position_cal_lb, 3 + row_offset, 2)

        # Current flow and pressure labels
        self.current_pressure_lb = QtGui.QLabel()
        self.grid.addWidget(self.current_pressure_lb, 6 + row_offset, 2)
        self.current_flow_lb = QtGui.QLabel()
        self.grid.addWidget(self.current_flow_lb, 6 + row_offset, 3)
        self.load_last_glue()
        self.load_fandp_labels()

        # Init machine button
        self.machine_init_btn = QtGui.QPushButton('Init')
        self.machine_init_btn.clicked.connect(lambda: self.launch_worker(
            self.init_machine, starting_func=[self.load_machine]))
        self.grid.addWidget(self.machine_init_btn, 8 + row_offset, 4)
        self.machine_init_lb = QtGui.QLabel('Init LitePlacer:')
        self.grid.addWidget(self.machine_init_lb, 8 + row_offset, 2)

        # Draw button and label
        self.dodraw_btn = QtGui.QPushButton('Draw')
        #self.dodraw_btn.clicked.connect(self.draw)
        self.dodraw_btn.clicked.connect(lambda: self.launch_worker(
            self.draw,
            check_func=[
                self.init_warning,
                self.coo_dict_warning,
                self.tilt_dict_warning,
            ],
        ))
        self.grid.addWidget(self.dodraw_btn, 4 + row_offset, 4)
        self.dodraw_lb = QtGui.QLabel('Draw configuration:')
        self.grid.addWidget(self.dodraw_lb, 4 + row_offset, 2)

        self.launch_worker(self.load_machine, toggle_func=self.toggle_move)
        #self.load_machine()
        self.launch_worker(self.load_scale, toggle_func=self.toggle_scale)

        self.show()
        print('Init took: ' + str(time.time() - start_time) + ' s')
示例#10
0
    def __init__(self,
                 main_window,
                 guess_pressure=False,
                 pix_w=700,
                 pix_h=500,
                 parent=None):
        print('fit window')
        super(fit_window, self).__init__(parent)
        self.setWindowTitle("GLUI: flow calibration")
        self.setWindowIcon(QtGui.QIcon('images/GLUI_logo.png'))
        self.setPalette(PALETTE)

        self.setGeometry(50, 50, pix_w, pix_h)
        self.main_window = main_window
        self.desired_flow = DRAWING_CFG[
            main_window.current_drawing]['desired_flow']
        self.flow_precision = DRAWING_CFG[
            main_window.current_drawing]['flow_precision']
        if guess_pressure and not main_window.current_pressure is None:
            self.set_pressure = main_window.current_pressure
            self.guess_pressure(main_window.current_flow)
        else:
            self.set_pressure = DRAWING_CFG[
                main_window.current_drawing]['init_pressure']
        self.measured_flow = 0.
        self.max_factor = 5.

        self.grid = QtGui.QGridLayout()
        self.setLayout(self.grid)

        self.thread_pool = QtCore.QThreadPool()

        # Fit plot
        self.figure, self.figure_ax = plt.subplots()
        #self.figure_ov = plt.figure(figsize=(10,5))
        self.canvas = Canvas(self.figure)
        self.grid.addWidget(self.canvas, 0, 0, 1, 3)
        #self.canvas.draw()

        # Progress and eta
        self.progress_bar = QtGui.QProgressBar()
        self.progress_bar.setAlignment(QtCore.Qt.AlignRight)
        self.grid.addWidget(self.progress_bar, 2, 1, 1, 2)
        self.eta_lb = QtGui.QLabel('ETA:  none s')
        self.grid.addWidget(self.eta_lb, 2, 0)

        # Info labels
        self.pressure_lb = QtGui.QLabel()
        self.grid.addWidget(self.pressure_lb, 1, 0)

        self.flow_lb = QtGui.QLabel()
        self.grid.addWidget(self.flow_lb, 1, 1)

        self.desired_flow_lb = QtGui.QLabel()
        self.grid.addWidget(self.desired_flow_lb, 1, 2)
        self.update_labels()

        # Start button
        self.start_btn = QtGui.QPushButton('Start')
        self.start_btn.clicked.connect(self.start)
        self.start_btn.setEnabled(True)
        self.grid.addWidget(self.start_btn, 3, 0)

        # Good fit/ Bad fit buttons
        self.good_btn = QtGui.QPushButton('Good')
        self.good_btn.clicked.connect(self.good)
        self.good_btn.setEnabled(False)
        self.grid.addWidget(self.good_btn, 3, 1)
        self.bad_btn = QtGui.QPushButton('Bad')
        self.bad_btn.clicked.connect(self.bad)
        self.bad_btn.setEnabled(False)
        self.grid.addWidget(self.bad_btn, 3, 2)