相关文章推荐
重情义的西装  ·  Exclude packages from ...·  11 月前    · 
温暖的八宝粥  ·  Sql ...·  1 年前    · 
浏览 213
已结题

python pyqtgraph 画多Y轴时,新增的Y轴(Y2)与初始默认Y轴(Y1)的坐标刻度上下位置不能对齐

python pyqtgraph 画多Y轴时,新增的Y轴(Y2)与初始默认Y轴(Y1)的坐标刻度上下位置不能对齐!!!
“注意:是左右坐标轴的总高度,和起始位置不对齐!!!”

pg.setConfigOptions( antialias = True , background = 'w' ) # pyqtgraph全局变量设置函数, antialias = True 开启曲线抗锯齿 self.win1 = pg.GraphicsLayoutWidget() # 创建pg layout,可实现数据界面布局自动管理 # pg绘图窗口可以作为一个widget添加到GUI中的graph_layout,当然也可以添加到Qt其他所有的容器中 self.verticalLayout.addWidget(self.win1) # 至少有一个绘图项使用它自己的视图框和左轴。 self.pI = self.win1.addPlot( title = "OCR chart" ) # 定义一个绘图项 #self.pI = pg.PlotItem( title = "OCR chart" ) # 定义一个绘图项 self.v1= self.pI.vb # 对绘图项的视图框的引用 # 定义轴 a2 =pg.AxisItem( "right" ) #self.pI.setLabel( 'right' , text = 'Res' , units = 'ohm.cm' , color = '#000000' ) # y轴设置函数 #a2 = self.pI.getAxis( "right" ) # 视图框,用于存放折线 self.v2= pg.ViewBox() # 向布局添加轴 # 注意这里col参数的位置 self.win1.addItem(a2, row =2, col =2, rowspan =1, colspan =1) self.win1.addItem(self.pI, row =2, col =1, rowspan =1, colspan =1) # 添加绘图框到图形布局 #self.win1.addItem(b1, row =3, col =1, rowspan =1, colspan =1) # 添加绘图框到图形布局 # 向绘图框添加视图框 self.win1.scene().addItem(self.v2) # 用轴连接 存放折线的视图框 a2.linkToView(self.v2) # 链接视图框,我也不知道干嘛这样写,但是写上就会在--绘图项的视图框上,整体缩放所有的折线 self.v2.setXLink(self.v1) # 轴标签 self.pI.setLabel( 'left' , text = 'Y1' , units = 'ohm.cm' , color = '#000000' ) # y轴设置函数 a2.setLabel( 'Y2' , color = '#2E2EFE' ) self.pI.setLabel( 'bottom' , text = 'X' , units = 'mm' ) # x轴设置函数 # 给绘图项的视图框添加折线xy点的值,折线颜色 # 调整大小时更新 self.v1.sigResized.connect(self.updateviews) # 开始时自动调整一次以适应视图 # enableAutoRange 启用自动范围 self.v2.enableAutoRange( axis =pg.ViewBox.XYAxes, enable = True ) 0

12 条回答 默认 最新

  • 特创数字科技 阿克苏市特创数字科技中心官方账号 2023-02-17 17:32
    关注

    可以使用pyqtgraph的AxisItem类的setTicks方法来设置Y1和Y2轴的刻度位置,以使它们对齐。

    获取Y1和Y2轴

    y1Axis = plot.getAxis('left')
    y2Axis = plot.getAxis('right')

    设置Y1和Y2轴的刻度位置

    y1Axis.setTicks([[(0, '0'), (1, '1'), (2, '2')], [(0, '0'), (1, '1'), (2, '2')]])
    y2Axis.setTicks([[(0, '0'), (1, '1'), (2, '2')], [(0, '0'), (1, '1'), (2, '2')]])

    本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
    按下Enter换行,Ctrl+Enter发表内容
查看更多回答(11条)

报告相同问题?

问题事件

  • 系统已结题 2月20日
  • 修改了问题 2月14日
  • 创建了问题 2月12日

悬赏问题

  • ¥20 你对Pyton有信心吗? 知道这个是什么图吗,想知道制作详细做法,或者模版也行 CubeMX配置lwip实现TCP数据传输 关于#51单片机#的问题:不能用中断、定时器之类的辅助实现 blastfoam初学者尝试跑算例遇到问题 pyqt6常规布局问题!我刚学 有点难度! 基于ros2的orbslam3的实时运行 支付行业技术人员来一个。常年包养