gpt4 book ai didi

python - 如何将自定义 AxisItem 添加到现有的 PlotWidget?

转载 作者:行者123 更新时间:2023-11-28 17:18:20 25 4
gpt4 key购买 nike

我正在尝试将 pyqtgraph 中的自定义 AxisItem 添加到由 Qt Designer 生成的现有 PlotWidget。有相关话题here ,但是没有代码示例的确切答案,我无法发表评论,所以我创建了一个新主题。

这是我的自定义 AxisItem(基于 this 代码):

import pyqtgraph as pg
import datetime

def int2td(ts):
return(datetime.timedelta(seconds=float(ts)/1e6))

class TimeAxisItem(pg.AxisItem):
def __init__(self, *args, **kwargs):
super(TimeAxisItem, self).__init__(*args, **kwargs)
def tickStrings(self, values, scale, spacing):
return [int2dt(value).strftime("%H:%M:%S") for value in values]

这是我的主要 QtPlotter 类:

from pyqtgraph.Qt import QtGui
from template_pyqt import Ui_Form # Ui_Form is generated by Qt Designer

class QtPlotter:
def __init__(self):
self.app = QtGui.QApplication([])
self.win = QtGui.QWidget()
self.ui = Ui_Form()
self.ui.setupUi(self.win)
self.win.show()

self.ui_plot = self.ui.plot
self.ui_plot.showGrid(x=True, y=True)

然后我尝试添加我的自定义 AxisItem:

self.ui_plot.getPlotItem().axes['bottom']['item'] = TimeAxisItem(orientation='bottom')

我没有错误,但这没有任何效果。

最佳答案

原来如此简单。 PlotItem 类没有 setAxis 方法。取而代之的是一个名为 setAxisItems 的方法。这段代码对我有用。

date_axis = pg.graphicsItems.DateAxisItem.DateAxisItem(orientation = 'bottom')
self.mainSoundPlot.setAxisItems(axisItems = {'bottom': date_axis})

关于python - 如何将自定义 AxisItem 添加到现有的 PlotWidget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42886849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com