PyQtGraph - 将光标设置为散点图
在本文中,我们将看到如何为 PyQtGraph 模块中的散点图设置自定义光标。 PyQtGraph 是一个用于Python的图形和用户界面库,它提供了设计和科学应用程序中通常需要的功能。它的主要目标是提供用于显示数据(绘图、视频等)的快速交互式图形。散点图(又名散点图、散点图)使用点来表示两个不同数值变量的值。它是一种绘图或数学图,使用笛卡尔坐标显示一组数据的典型两个变量的值。每个点在水平和垂直轴上的位置表示单个数据点的值。在计算机用户界面中,光标是一种指示器,用于在计算机监视器或其他显示设备上显示用户交互的当前位置,这些设备将对来自文本输入或定点设备的输入做出响应。鼠标光标也被称为指针,因为它的用法类似于指点杆。
我们可以在下面给出的命令的帮助下创建一个绘图窗口并在其上创建散点图
# creating a pyqtgraph plot window
plt = pg.plot()
# creating a scatter plot graph of size = 10
scatter = pg.ScatterPlotItem(size=10)
为了做到这一点,我们对散点图对象使用setCursor()方法
Syntax : scatter.setCursor(cursor)
Argument : It takes QCursor object as argument
Return : It returns None
下面是实现
Python3
# importing Qt widgets
from PyQt5.QtWidgets import *
# importing system
import sys
# importing numpy as np
import numpy as np
# importing pyqtgraph as pg
import pyqtgraph as pg
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class Window(QMainWindow):
def __init__(self):
super().__init__()
# setting title
self.setWindowTitle("PyQtGraph")
# setting geometry
self.setGeometry(100, 100, 600, 500)
# icon
icon = QIcon("skin.png")
# setting icon to the window
self.setWindowIcon(icon)
# calling method
self.UiComponents()
# showing all the widgets
self.show()
# method for components
def UiComponents(self):
# creating a widget object
widget = QWidget()
# creating a label
label = QLabel("Geeksforgeeks Scatter Plot")
# making label do word wrap
label.setWordWrap(True)
# creating a plot window
plot = pg.plot()
# number of points
n = 300
# creating a scatter plot item
# of size = 10
# using brush to enlarge the of green color
scatter = pg.ScatterPlotItem(size = 10, brush = pg.mkBrush(30, 255, 35, 255))
# data for x-axis
x_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# data for y-axis
y_data = [5, 4, 6, 4, 3, 5, 6, 6, 7, 8]
# setting data to the scatter plot
scatter.setData(x_data, y_data)
# add item to plot window
# adding scatter plot item to the plot window
plot.addItem(scatter)
# Creating a grid layout
layout = QGridLayout()
# minimum width value of the label
label.setMinimumWidth(130)
# setting this layout to the widget
widget.setLayout(layout)
# adding label in the layout
layout.addWidget(label, 1, 0)
# plot window goes on right side, spanning 3 rows
layout.addWidget(plot, 0, 1, 3, 1)
# setting this widget as central widget of the main widow
self.setCentralWidget(widget)
# creating a cursor
cursor = Qt.PointingHandCursor
# setting cursor to scatter plot
scatter.setCursor(cursor)
# create pyqt5 app
App = QApplication(sys.argv)
# create the instance of our Window
window = Window()
# start the app
sys.exit(App.exec())
输出 :