pyqtgraph设置坐标_在PyQtGraph中返回鼠标光标坐标

I am new to PyQtGraph and want to use it for a speedy visualization of my data acquisition. Previously I was using matplotlib where redrawing the figure was my bottleneck. After transitioning to PyQtGraph, I am currently missing only one functionality of matplotlib. Namely, returning the x-, and y-coordinate of my mouse cursor.

How can I call/mimic the return of the x-, and y-coordinates of my mouse cursor in a plot made using PyQtGraph?

EDIT! - After implementing the tips of leongold, the code is able to return the mousecursor position without losing speed. The code is the following:

import numpy

import pyqtgraph as pg

from pyqtgraph.Qt import QtGui, QtCore

def gaussian(A, B, x):

return A * numpy.exp(-(x/(2. * B))**2.)

def mouseMoved(evt):

mousePoint = p.vb.mapSceneToView(evt[0])

label.setText(" x = %0.2f, y = %0.2f" % (mousePoint.x(), mousePoint.y()))

# Initial data frame

x = numpy.linspace(-5., 5., 10000)

y = gaussian(5., 0.2, x)

# Generate layout

win = pg.GraphicsWindow()

label = pg.LabelItem(justify = "right")

win.addItem(label)

p = win.addPlot(row = 1, col = 0)

plot = p.plot(x, y, pen = "y")

proxy = pg.SignalProxy(p.scene().sigMouseMoved, rateLimit=60, slot=mouseMoved)

# Update layout with new data

i = 0

while i < 500:

noise = numpy.random.normal(0, .2, len(y))

y_new = y + noise

plot.setData(x, y_new, pen = "y", clear = True)

p.enableAutoRange("xy", False)

pg.QtGui.QApplication.processEvents()

i += 1

win.close()

解决方案

You need to setup a pyqtgraph.SignalProxy and connect it to a callback:

if p is your plot, it'll look like: pyqtgraph.SignalProxy(p.scene().sigMouseMoved, rateLimit=60, slot=callback)

Whenever the mouse is moved over the plot, the callback is called with an event as an argument, i.e. callback(event). event[0] holds a positional argument you pass to p.vb.mapSceneToView(position).x() for x value and p.vb.mapSceneToView(position).y() for y value.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值