下面的代码是pyqtgraph
示例“矩阵显示”的简单修改。
import pyqtgraph as pg
from pyqtgraph.Qt import QtWidgets, mkQApp
class MyBar(pg.ColorBarItem):
def __init__(self, *args, **kargs):
super().__init__(*args,**kargs)
self.unit = "cm"
self.display_unit()
def display_unit(self):
pass
class MainWindow(QtWidgets.QMainWindow):
""" example application main window """
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
gr_wid = pg.GraphicsLayoutWidget(show=True)
self.setCentralWidget(gr_wid)
self.resize(600,500)
self.show()
bar = MyBar( values=(-1,1), colorMap=None)
gr_wid.addItem(bar)
mkQApp("")
main_window = MainWindow()
if __name__ == '__main__':
pg.exec()
我的环境中安装了PyQt5
和pyqtgraph
。代码运行并给出:
我想写一个方法来添加单位到我的酒吧。给定一个字符串unit
,在本例中是"cm"
,我想实现以下两个中的任何一个,最好是在这个类MyBar
中:
1.单位显示在顶部数字旁边:
1.添加一个字符串,作为整个条形上方或顶部数字上方的标题,表示“unit = cm”:
请注意,我只是要求显示一个额外的字符串。酒吧的功能方面没有任何变化。我试图通过源代码,但没有发现任何有助于实现这一点的方法。
1条答案
按热度按时间agxfikkp1#
实际上有一个“适当”的方法来让它工作。pyqtgraph有一个内置的轴单位自动处理,它自动将单位缩放到正确的SI前缀('m '表示milli-,'k'表示kilo-等)。所以你只需要抓住
ColorBarItem
的主轴,并给予它一个合适的单位。需要注意的是,“c”表示centi-不被认为是SI前缀py pyqtgraph -它将自动地表示milli-。所以,如果你想强制它使用“cm”并放弃任何自动缩放功能,你需要在轴上调用
enableAutoSIPrefix(False)
。