本文整理汇总了Python中matplotlib.backends.backend_qt5agg.NavigationToolbar2QT.addWidget方法的典型用法代码示例。如果您正苦于以下问题:Python NavigationToolbar2QT.addWidget方法的具体用法?Python NavigationToolbar2QT.addWidget怎么用?Python NavigationToolbar2QT.addWidget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类matplotlib.backends.backend_qt5agg.NavigationToolbar2QT
的用法示例。
在下文中一共展示了NavigationToolbar2QT.addWidget方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: MultiPlot
# 需要导入模块: from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT [as 别名]
# 或者: from matplotlib.backends.backend_qt5agg.NavigationToolbar2QT import addWidget [as 别名]
class MultiPlot(QtWidgets.QMainWindow):
def __init__(self, _parent):
QtWidgets.QMainWindow.__init__(self, _parent)
self.setWindowTitle("Production rates")
self.resize(1020, 752)
frameGm = self.frameGeometry()
centerPoint = QtWidgets.QDesktopWidget().availableGeometry().center()
frameGm.moveCenter(centerPoint)
self.move(frameGm.topLeft())
self.fig = None
self.canvas = None
self.parent = _parent
self.prod_rates_df = _parent.simulation_thread.prod_rates_df
self.prev_dir_path = ""
self.create_menu()
self.create_main_frame()
self.on_draw()
def create_menu(self):
self.file_menu = self.menuBar().addMenu("File")
quit_action = QtWidgets.QAction("Quit", self)
quit_action.setIcon(QtGui.QIcon(":quit.png"))
quit_action.triggered.connect(self.close)
quit_action.setToolTip("Quit")
quit_action.setStatusTip("Quit")
quit_action.setShortcut('Ctrl+Q')
self.file_menu.addAction(quit_action)
def create_main_frame(self):
self.main_frame = QtWidgets.QWidget()
# Create the mpl Figure and FigCanvas objects
self.dpi = 100
self.fig = Figure((10.0, 10.0), dpi=self.dpi, facecolor='White')
self.canvas = FigureCanvas(self.fig)
self.canvas.setParent(self.main_frame)
# Create the navigation toolbar, tied to the canvas
self.mpl_toolbar = NavigationToolbar(self.canvas, self.main_frame)
save_button = QtWidgets.QPushButton()
save_button.clicked.connect(self.save_production_data)
save_button.setIcon(QtGui.QIcon(":save.png"))
save_button.setToolTip("Save production data")
save_button.setStatusTip("Save production data")
show_button = QtWidgets.QPushButton()
show_button.clicked.connect(self.plot_settings_view)
show_button.setIcon(QtGui.QIcon(":gear.png"))
show_button.setToolTip("Edit settings")
show_button.setStatusTip("Edit settings")
buttonbox0 = QtWidgets.QDialogButtonBox()
buttonbox0.addButton(save_button, QtWidgets.QDialogButtonBox.ActionRole)
buttonbox0.addButton(show_button, QtWidgets.QDialogButtonBox.ActionRole)
self.mpl_toolbar.addWidget(buttonbox0)
vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(self.mpl_toolbar)
vbox.addWidget(self.canvas)
self.main_frame.setLayout(vbox)
self.setCentralWidget(self.main_frame)
self.status_text = QtWidgets.QLabel("")
self.statusBar().addWidget(self.status_text,1)
def save_production_data(self):
filename = QtWidgets.QFileDialog.getSaveFileName(self,self.tr("Save file"), self.prev_dir_path, "CSV files (*.csv)")
filename = filename[0]
if not filename:
return
self.prev_dir_path = ntpath.dirname(filename[0])
self.prod_rates_df.to_csv(filename)
self.statusBar().showMessage(self.tr("File saved"),3000)
def plot_settings_view(self):
settings_dialog = PlotSettingsDialog(self)
settings_dialog.setModal(True)
settings_dialog.show()
def on_draw(self):
cl = ['#4F81BD', '#C0504D', '#9BBB59','#F79646','#8064A2','#4BACC6','0','0.5'] # colour
# add subplot purely for the axis labels
axes = self.fig.add_subplot(111)
axes.spines['top'].set_color('none')
axes.spines['bottom'].set_color('none')
axes.spines['left'].set_color('none')
axes.spines['right'].set_color('none')
#.........这里部分代码省略.........
示例2: __init__
# 需要导入模块: from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT [as 别名]
# 或者: from matplotlib.backends.backend_qt5agg.NavigationToolbar2QT import addWidget [as 别名]
class FigureTab:
cursors = [15000, 45000]
colors = ['orange', 'violet']
def __init__(self, layout, vna):
# create figure
self.figure = Figure()
if sys.platform != 'win32':
self.figure.set_facecolor('none')
self.canvas = FigureCanvas(self.figure)
layout.addWidget(self.canvas)
# create navigation toolbar
self.toolbar = NavigationToolbar(self.canvas, None, False)
self.toolbar.layout().setSpacing(6)
# remove subplots action
actions = self.toolbar.actions()
if int(matplotlib.__version__[0]) < 2:
self.toolbar.removeAction(actions[7])
else:
self.toolbar.removeAction(actions[6])
self.toolbar.addSeparator()
self.cursorLabels = {}
self.cursorValues = {}
self.cursorMarkers = {}
self.cursorPressed = {}
for i in range(len(self.cursors)):
self.cursorMarkers[i] = None
self.cursorPressed[i] = False
self.cursorLabels[i] = QLabel('Cursor %d, kHz' % (i + 1))
self.cursorLabels[i].setStyleSheet('color: %s' % self.colors[i])
self.cursorValues[i] = QSpinBox()
self.cursorValues[i].setMinimumSize(90, 0)
self.cursorValues[i].setSingleStep(10)
self.cursorValues[i].setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)
self.toolbar.addWidget(self.cursorLabels[i])
self.toolbar.addWidget(self.cursorValues[i])
self.cursorValues[i].valueChanged.connect(partial(self.set_cursor, i))
self.canvas.mpl_connect('button_press_event', partial(self.press_marker, i))
self.canvas.mpl_connect('motion_notify_event', partial(self.move_marker, i))
self.canvas.mpl_connect('button_release_event', partial(self.release_marker, i))
self.toolbar.addSeparator()
self.plotButton = QPushButton('Rescale')
self.toolbar.addWidget(self.plotButton)
layout.addWidget(self.toolbar)
self.plotButton.clicked.connect(self.plot)
self.mode = None
self.vna = vna
def add_cursors(self, axes):
if self.mode == 'gain_short' or self.mode == 'gain_open':
columns = ['Freq., kHz', 'G, dB', r'$\angle$ G, deg']
else:
columns = ['Freq., kHz', 'Re(Z), \u03A9', 'Im(Z), \u03A9', '|Z|, \u03A9', r'$\angle$ Z, deg', 'SWR', r'|$\Gamma$|', r'$\angle$ $\Gamma$, deg', 'RL, dB']
y = len(self.cursors) * 0.04 + 0.01
for i in range(len(columns)):
self.figure.text(0.19 + 0.1 * i, y, columns[i], horizontalalignment = 'right')
self.cursorRows = {}
for i in range(len(self.cursors)):
y = len(self.cursors) * 0.04 - 0.03 - 0.04 * i
self.figure.text(0.01, y, 'Cursor %d' % (i + 1), color = self.colors[i])
self.cursorRows[i] = {}
for j in range(len(columns)):
self.cursorRows[i][j] = self.figure.text(0.19 + 0.1 * j, y, '', horizontalalignment = 'right')
if self.mode == 'smith':
self.cursorMarkers[i], = axes.plot(0.0, 0.0, marker = 'o', color = self.colors[i])
else:
self.cursorMarkers[i] = axes.axvline(0.0, color = self.colors[i], linewidth = 2)
self.set_cursor(i, self.cursorValues[i].value())
def set_cursor(self, index, value):
FigureTab.cursors[index] = value
marker = self.cursorMarkers[index]
if marker is None: return
row = self.cursorRows[index]
freq = value
gamma = self.vna.gamma(freq)
if self.mode == 'smith':
marker.set_xdata(gamma.real)
marker.set_ydata(gamma.imag)
else:
marker.set_xdata(freq)
row[0].set_text('%d' % freq)
if self.mode == 'gain_short':
gain = self.vna.gain_short(freq)
magnitude = 20.0 * np.log10(np.absolute(gain))
angle = np.angle(gain, deg = True)
row[1].set_text(unicode_minus('%.1f' % magnitude))
row[2].set_text(unicode_minus('%.1f' % angle))
elif self.mode == 'gain_open':
gain = self.vna.gain_open(freq)
magnitude = 20.0 * np.log10(np.absolute(gain))
angle = np.angle(gain, deg = True)
row[1].set_text(unicode_minus('%.1f' % magnitude))
row[2].set_text(unicode_minus('%.1f' % angle))
else:
swr = self.vna.swr(freq)
z = self.vna.impedance(freq)
rl = 20.0 * np.log10(np.absolute(gamma))
if rl > -0.01: rl = 0.0
row[1].set_text(metric_prefix(z.real))
#.........这里部分代码省略.........
示例3: IVMainPlot
# 需要导入模块: from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT [as 别名]
# 或者: from matplotlib.backends.backend_qt5agg.NavigationToolbar2QT import addWidget [as 别名]
class IVMainPlot(QtWidgets.QMainWindow):
def __init__(self, parent=None):
pass
def on_draw(self):
pass
def create_main_frame(self,two_axes=False):
self.main_frame = QtWidgets.QWidget()
# Create the mpl Figure and FigCanvas objects
self.dpi = 100
self.fig = Figure((10.0, 10.0), dpi=self.dpi, facecolor='White')
self.canvas = FigureCanvas(self.fig)
self.canvas.setParent(self.main_frame)
self.axes = self.fig.add_subplot(111, facecolor='White')
if two_axes:
self.axes2 = self.axes.twinx()
# Create the navigation toolbar, tied to the canvas
self.mpl_toolbar = NavigationToolbar(self.canvas, self.main_frame)
# Other GUI controls
show_button = QtWidgets.QPushButton()
show_button.clicked.connect(self.plot_settings_view)
show_button.setIcon(QtGui.QIcon(":gear.png"))
show_button.setToolTip(self.tr("Plot settings"))
show_button.setStatusTip(self.tr("Plot settings"))
buttonbox0 = QtWidgets.QDialogButtonBox()
buttonbox0.addButton(show_button, QtWidgets.QDialogButtonBox.ActionRole)
self.mpl_toolbar.addWidget(show_button)
vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(self.mpl_toolbar)
vbox.addWidget(self.canvas)
self.main_frame.setLayout(vbox)
self.setCentralWidget(self.main_frame)
self.status_text = QtWidgets.QLabel("")
self.statusBar().addWidget(self.status_text,1)
def create_menu(self):
self.file_menu = self.menuBar().addMenu(self.tr("File"))
tip = self.tr("Quit")
quit_action = QtWidgets.QAction(tip, self)
quit_action.setIcon(QtGui.QIcon(":quit.png"))
quit_action.triggered.connect(self.close)
quit_action.setToolTip(tip)
quit_action.setStatusTip(tip)
quit_action.setShortcut('Ctrl+Q')
self.file_menu.addAction(quit_action)
def plot_settings_view(self):
settings_dialog = PlotSettingsDialog(self)
settings_dialog.setModal(True)
settings_dialog.show()