我似乎找不到一种方法来获取Pyqtgraph中ScatterPlotItem的所有点的列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我似乎找不到一种方法来获取Pyqtgraph中ScatterPlotItem的所有点的列表相关的知识,希望对你有一定的参考价值。

我正在尝试访问Pyqtgraph中ScatterPlotItem的所有SpotItem的列表,以便分别操作它们并更改其属性(如颜色或大小),但到目前为止,我还没有找到解决方法。我可以通过将sigClicked(self, points)连接到函数来访问单击的点,但是我不知道如何获取图中所有点的列表。我尝试了以下方法:

scatter_plot = pyqtgraph.ScatterPlotItem(size=5)
data = scatter_plot.data

for i in data:
  scatter[i].setPen(pyqtgraph.mkPen(cosmetic=True, width=10.5, color=QtGui.QColor(210, 85, 173)), size=10)

这给我一个错误:

'ScatterPlotItem' object does not support indexing

scatter_plot.data似乎返回点的属性列表,而不是点本身。但是,这不允许我直接操纵属性。我可以做这样的事情:

for i in data:
  data[i][0] = 10

这会将数据数组的zeroeth元素(对应于x值)更改为值10。如何更改SpotItem的笔和笔刷?

答案
如果要获取SpotItem,则必须使用points()方法:

import random import sys from pyqtgraph.Qt import QtGui, QtCore import pyqtgraph as pg if __name__ == "__main__": app = QtGui.QApplication(sys.argv) view = pg.GraphicsLayoutWidget() plt = view.addPlot() x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y = [10, 8, 6, 4, 2, 20, 18, 16, 14, 12] s = pg.ScatterPlotItem(x, y, size=10) plt.addItem(s) view.show() for pt in s.points(): # random color color = QtGui.QColor(*random.sample(range(255), 3)) pt.setPen( pg.mkPen(cosmetic=True, width=10.5, color=color), size=10, ) sys.exit(QtGui.QApplication.exec_())

以上是关于我似乎找不到一种方法来获取Pyqtgraph中ScatterPlotItem的所有点的列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从 chrome 扩展访问主机

使用 RRDtool 记录总值的最佳方法?

如何在 PyQtGraph 中绘制音频波形

如何使用LinkedIn API获取公司见解

如何从特定标签中获取 Instagram 用户名

PyQtGraph SpotItem 在调用用户数据时返回“NoneType”