Pyqtgraph:在同一个图形窗口中实时绘制两个图形相同的X轴但两个不同的Y轴方向相反

Posted

技术标签:

【中文标题】Pyqtgraph:在同一个图形窗口中实时绘制两个图形相同的X轴但两个不同的Y轴方向相反【英文标题】:Pyqtgraph: plot real time two graphs same X-axis but two different Y-axis in opposite direction in a same graph window 【发布时间】:2015-05-31 19:08:34 【问题描述】:

Tyring 绘制两个共享 x 轴但具有不同 y 轴和不同范围的实时图表。我绘制了与我想要的非常相似的图表,但这不是我想要的精确图表。图像如下。我编写了基于 GraphicsLayout.py 示例代码的代码。但我的绘图需要非常严格的修改。由于两个图具有不同的范围,因此 y 轴未平行对齐。 (我不被允许发图片,我也在google group上问过同样的问题)

from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import numpy as np

app = QtGui.QApplication([])
view = pg.GraphicsView()
l = pg.GraphicsLayout(border=(100,100,100))
view.setCentralItem(l)
view.show()
view.setWindowTitle('pyqtgraph example: GraphicsLayout')
view.resize(800,600)


l2 = l.addLayout(colspan=3, border=(50,0,0))
l2.setContentsMargins(10, 10, 10, 10)
l2.addLabel("Sub-layout: this layout demonstrates the use of shared    axes and axis labels", colspan=3)
l2.nextRow()
l2.addLabel('Vertical Axis Label', angle=-90, rowspan=2)
p21 = l2.addPlot()
p21.setYRange(0,1000)
l2.nextRow()
p23 = l2.addPlot()
p23.setYRange(0,50)
l2.nextRow()
l2.addLabel("HorizontalAxisLabel", col=1, colspan=1)

## hide axes on some plots
p21.hideAxis('bottom')
p21.hideButtons()
p23.hideButtons()

## Start Qt event loop unless running in interactive mode.
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore,   'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()

你能指导我,我怎样才能做到这一点?我是 QT 和 pyqtgraph 的菜鸟。谢谢, 问候, 乌波尔

【问题讨论】:

【参考方案1】:

我已经通过设置两个图表的边距来解决这个问题(setContentsMargins(left,top,bottom,right))。

【讨论】:

以上是关于Pyqtgraph:在同一个图形窗口中实时绘制两个图形相同的X轴但两个不同的Y轴方向相反的主要内容,如果未能解决你的问题,请参考以下文章

使用PyQtGraph绘制图形

如何更改 pyqtgraph 中图形的“分辨率”?

在pyqtgraph中实现实时绘图的最简单方法是啥

PyQtGraph 不会调整大小

PyQtGraph:如何更改 ScrollArea 中图形的大小(高度和宽度)

pyqtgraph 中窗口的最小化调整了包含对象的大小,但它应该只显示图形的较小范围