python - 如何在 PyQtGraph PlotWidget 图中清除 ZOOM?
问题描述
我正在使用 PyQt5 和 PyQtGraph。我无法弄清楚如何在 PyQtGraph PlotWidget 中清除绘图的 ZOOM 级别。下面的代码演示。它绘制了一个红色矩形。然后使用鼠标滚轮缩小。然后单击“Button1”,代码调用 PlotWidget.clear() 方法,该方法会清除绘制的数据并重新绘制相同的蓝色矩形,但不会清除 ZOOM 级别。我假设 PlotWidget.clear() 会清除整个绘图,包括 ZOOM 级别,但我找不到 PlotWidget 方法来清除 ZOOM 级别。请参阅下面第 45 行代码中的注释“#??? 为什么不清除'ZOOM'”。
import sys
from PyQt5 import QtWidgets
import numpy as np
import pyqtgraph as pg
from pyqtgraph import PlotWidget, plot
# *********************************************************************************************
# *********************************************************************************************
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("My MainWindow")
self.qPlotWidget = pg.PlotWidget(self)
self.qPlotWidget.setLabel("bottom", "X-Axis")
self.qPlotWidget.setLabel("left", "Y-Axis")
self.qPushButton = QtWidgets.QPushButton(self)
self.qPushButton.setText("Button1")
self.qPushButton.clicked.connect(self.qPushButtonClicked)
self.toggle = 0
self.plotData()
def plotData(self):
data1 = np.zeros((5, 2), float) # create the array to hold the data
data1[0] = np.array((1.0, 10.0))
data1[1] = np.array((1.0, 20.0))
data1[2] = np.array((2.0, 20.0))
data1[3] = np.array((2.0, 10.0))
data1[4] = np.array((1.0, 10.0))
if(self.toggle == 0):
pen1 = pg.mkPen(color=(255,0,0), width=2) # red
self.toggle = 1
else:
pen1 = pg.mkPen(color=(0,0,255), width=2) # blue
self.toggle = 0
self.qPlotWidget.plot(data1, pen=pen1, name="data1")
def qPushButtonClicked(self):
print("In qPushButtonClicked")
self.qPlotWidget.clear() # ??? why doesn't this clear the 'ZOOM'
self.plotData()
def resizeEvent(self, event):
size = self.geometry()
self.qPlotWidget.setGeometry(50, 50, size.width()-100, size.height()-100)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
screen = QtWidgets.QDesktopWidget().screenGeometry()
w.setGeometry(100, 100, screen.width()-200, screen.height()-200) # x, y, Width, Height
w.show()
sys.exit(app.exec_())
解决方案
推荐阅读
- c# - 认知服务语音产生空文件
- objective-c - IOS-FreeRDP--ios 源无法运行 ENABLE_BITCODE=YES 设置不起作用
- c++ - MFC 图标没有变化
- mongodb - MongoDB查询以获取与具有多个值的键匹配的所有文档
- html - 如何制作嵌套的 ngFor?[角度和离子]
- html - 在引导程序 4 中制作一个 5 列网格
- android - 当应用程序处于后台时,带有 PendingIntent 的 Android FusedLocationClient 未接收到位置更新
- c# - 使用抽象工厂
- android-studio - 在活动中接收来自意图的值并创建一个新的 SharedPreference
- java - Java 中的 FileWriter 缓冲区在哪里?是在系统空间还是用户进程空间?