from PyQt5.QtWidgets import QMainWindow, QWidget, QGridLayout
from pyqtgraph import ViewBox, PlotItem
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
app = QtGui.QApplication([])
window = QMainWindow()
holder = QWidget()
holder_layout = QGridLayout()
holder.setLayout(holder_layout)
window.setCentralWidget(holder)
#
# Grid section
#
grid_widget = pg.GraphicsLayoutWidget()
grid_subplot1 = grid_widget.addPlot(col=0, row=0)
grid_subplot2 = grid_widget.addPlot(col=1, row=0)
grid_subplot3 = grid_widget.addPlot(col=0, row=1)
grid_subplot4 = grid_widget.addPlot(col=1, row=1)
for plotitem in (grid_subplot1, grid_subplot2, grid_subplot3, grid_subplot4):
plotitem.setRange(xRange=(0, 5), yRange=(0, 2.5), padding=0)
plotitem.showGrid(True, True, 0.2)
plotitem.getAxis('left').setStyle(autoExpandTextSpace=False, tickTextWidth=40)
#
# Grid XLink 1->2,2->3,3-4
#
grid_subplot1.setXLink(grid_subplot2)
grid_subplot2.setXLink(grid_subplot3)
grid_subplot3.setXLink(grid_subplot4)
#
# Vertical section
#
vertical_widget = pg.GraphicsLayoutWidget()
vertical_subplot1 = vertical_widget.addPlot(col=0, row=0)
vertical_subplot1.setRange(xRange=(0, 5), yRange=(0, 2.5), padding=0)
vertical_subplot1.showGrid(True, True, 0.2)
holder_layout.addWidget(grid_widget)
holder_layout.addWidget(vertical_widget)
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
window.show()
QtGui.QApplication.instance().exec_()