pyqtgraph:缩放时保持TextItem的恒定位置

2024-06-26 14:52:07 发布

您现在位置:Python中文网/ 问答频道 /正文

本质上,我可以像文本一样保持文本的缩放比例,而文本的缩放功能只需要一个文本。我不知道该怎么做。欢迎提出任何建议。在

这个例子说明了问题。在左侧图形中,缩放y轴会导致文本移动,而在右侧图形中,图例在缩放时保持不变的位置。我希望将textItem的位置定义为图例位置,相对于图形窗口处于恒定位置。或者,如果有人知道如何更改图例的格式和更新文本,也可以使用,但从我阅读的文档来看,这是不可能的。在

import pyqtgraph as pg 
from PyQt4 import QtGui 
import numpy as np 
import sys 
def main(): 
    app = QtGui.QApplication(sys.argv) 
    widg = QtGui.QWidget() 
    widg.move(100, 100) 
    pg.setConfigOption('background', 'w')
    pg.setConfigOption('foreground', 'k') 

    pgWidg = pg.GraphicsLayoutWidget()   
    pgWidg.resize(750, 250)  

    graph1 = pgWidg.addPlot(row=1, col=1) 
    graph2 = pgWidg.addPlot(row=1, col=2)
    curve1 = graph1.plot(y=np.sin(np.linspace(1, 21, 1000)), pen='k') 
    curve2 = graph2.plot(y=np.sin(np.linspace(1, 21, 1000)), pen='k') 

    graph1.addItem(curve1) 
    graph2.addItem(curve2) 
    graph1.setMouseEnabled(x=False, y=True)
    graph2.setMouseEnabled(x=False, y=True)

    graph1Text = pg.TextItem(text = 'A1', color=(0, 0, 0))
    graph1.addItem(graph1Text)
    graph1Text.setPos(150, 1)

    legend = graph2.addLegend()
    style = pg.PlotDataItem(pen='w')
    legend.addItem(style, 'A2')

    grid = QtGui.QGridLayout() 
    grid.addWidget(pgWidg, 0,0)          
    widg.setLayout(grid) 
    widg.show() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main()

Tags: 文本import图形mainnpsyspg图例