【问题标题】:Make each Y value to correspond to an X value in pyqtgraph使每个 Y 值对应 pyqtgraph 中的一个 X 值
【发布时间】:2020-04-10 07:46:40
【问题描述】:

我有一个算法,它可以获取一些数据并实时绘制它们。我有一个 pyqt5 窗口,我使用 pyqtgraph 在窗口上绘图。我使用的代码sn-p如下;

import pyqtgraph as pg
from PyQt5.QtWidgets import QMainWindow
from Ui_GraphicsLayout import Ui_GraphicsLayout

class TimeDomainPlotWindow(QMainWindow):
    closing = pyqtSignal()
    def __init__(self, title = "Time Domain Plot", name = "Channel"):
        super().__init__()

        pg.setConfigOption('background', 'w')   

        self.__ui = Ui_GraphicsLayout()
        self.__ui.setupUi(self)

        self.setWindowTitle("Real Time Data - {:s}".format(title))
        self.__plot = self.__ui.widget.addPlot(title = name, row = 0, col = 0)
        self.__pditem = self.__plot.plot(pen = 'k')

    def plot(self, data):
        self.__pditem.setData(data)

我得到的情节是这样的:

所以我发送了一个包含 1000 个值的数组并绘制它们。因为我的数组中有 1000 个值,所以它将 X 轴从 0 编号到 1000。我想更改 X 轴中的值范围,并使我的数据数组中的每个值对应于图中的 X 值。所以就像在excel中你有两列数据,其中一列是你的X轴,另一列是你的Y轴。我想,假设有一个 X 轴,其值从 1 到 100,但只有 10 个 Y 值,并使这 10 个值中的每一个都成为特定 X 轴值处的一个点。可以这样做吗?

【问题讨论】:

标签: python pyqtgraph


【解决方案1】:

setData 函数有一个可选的 x 参数,它执行您所描述的操作,因此您的绘图函数将变为:

    def plot(self, data, x_list):
        self.__pditem.setData(y=data, x=x_list)

其中 x_list 是一个与data 长度相同的列表。

要将 x 轴更改为 1 到 100,您可以使用 setXRange 函数,请参阅此 documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    相关资源
    最近更新 更多