📅  最后修改于: 2023-12-03 14:45:51.799000             🧑  作者: Mango
在使用PyQtGraph绘制条形图时,我们通常需要获取某个条形图的场景位置。在这篇文章中,我们将介绍如何从条形图中获取其场景位置。
我们需要导入PyQtGraph及PyQt5库来完成本教程:
import pyqtgraph as pg
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
我们需要创建一个图形窗口,用于显示我们的条形图。这里我们使用QMainWindow类。
app = QApplication([])
win = QMainWindow()
win.resize(800, 600)
接下来,我们需要创建一个BarGraphItem,用于绘制条形图。在创建BarGraphItem时,我们可以传入参数x和height。
x = [1, 2, 3, 4, 5]
height = [1, 2, 3, 4, 5]
bar = pg.BarGraphItem(x=x, height=height, width=0.8, brush='b')
我们需要将BarGraphItem添加到图形窗口中,这样我们可以在图形窗口中看到绘制出的条形图。
view = pg.GraphicsView()
layout = pg.GraphicsLayout()
view.setCentralItem(layout)
win.setCentralWidget(view)
plot = layout.addPlot()
plot.addItem(bar)
完成以上步骤后,我们需要从BarGraphItem对象中获取其场景位置。这里我们使用.sceneBoundingRect()
方法来获取场景位置:
rect = bar.sceneBoundingRect()
我们需要将得到的场景位置转换成视图位置,这里我们使用mapToView()
方法来完成。
view_rect = view.mapToView(rect)
最后,我们可以把所有步骤组合成一个完整的程序。
import pyqtgraph as pg
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
app = QApplication([])
win = QMainWindow()
win.resize(800, 600)
x = [1, 2, 3, 4, 5]
height = [1, 2, 3, 4, 5]
bar = pg.BarGraphItem(x=x, height=height, width=0.8, brush='b')
view = pg.GraphicsView()
layout = pg.GraphicsLayout()
view.setCentralItem(layout)
win.setCentralWidget(view)
plot = layout.addPlot()
plot.addItem(bar)
rect = bar.sceneBoundingRect()
view_rect = view.mapToView(rect)
win.show()
app.exec()
以上就是获取PyQtGraph条形图的场景位置的方法。