pyqtgraph自定义刻度标签潜在的bug

时间:2015-11-15 06:14:42

标签: qt python-3.x pyqtgraph

我正在使用PyQtGraph并将图形嵌入到Qt程序中。我已将axisItems添加到PlotWidget的构造函数中。它似乎做了一些有点奇怪的事情;我在右上角有一个0___1的离线。有谁知道造成这种情况的原因和/或如何摆脱它?

我附上了一张显示此内容和我的代码的图片,以生成图片中的内容。

如果我没有将AxisItem添加到构造函数中(因此没有获得我的自定义刻度标签),则不会发生此问题。

qtwindow

import sys
import numpy as np
from PySide import QtCore, QtGui, QtUiTools, QtXml
from ui import *
import pyqtgraph as pg


class PlotWidgetBarGraph(pg.PlotWidget):
    def __init__(self, **opts):
        # Add custom tick strings.
        xDict = {1.:'1', 2.:'2', 3.:'3', 4.:'4',
                 5.:'5', 6.:'6', 7.:'7', 8.:'8',
                 9.:'1/2', 10.:'1/3', 11.:'1/4',
                 12.:'2/3', 13.:'2/4', 14.:'3/4',
                 15.:'1/2/3', 16.:'2/3/4',
                 17:'1/2/3/4'}
        xAxis = pg.AxisItem(orientation='bottom')
        xAxis.setTicks([xDict.items(), []])

        super().__init__(axisItems={'bottom': xAxis})

        # Create and add bar graph.
        bg = pg.BarGraphItem(**opts)
        self.addItem(bg)    

class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        self.setupUi(self)

        splitter = QtGui.QSplitter(QtCore.Qt.Vertical)
        x = np.arange(20)
        y = np.abs(np.sin(x))+0.1
        plot1 = PlotWidgetBarGraph(x=x, height=y, width=0.8, brush='b')
        plot2 = PlotWidgetBarGraph(x=x, height=y, width=0.8, brush='b')
        splitter.addWidget(plot1)
        splitter.addWidget(plot2)
        splitter.setStretchFactor(0, 1)
        splitter.setStretchFactor(1, 2)
        self.verticalLayout.addWidget(splitter)


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

0 个答案:

没有答案