2014-11-24 2 views
0

Имея простой графический макет с PyQtGraph, в которой ось х из участков связаны друг с другом, и отображается сетка в обоих участках, а также:PyQtGraph сетки со связанными осями

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

app = QtGui.QApplication([])               
view = pg.GraphicsView()                
l = pg.GraphicsLayout()                
view.setCentralItem(l)                
view.show()                   
view.resize(800,600)                 

p0 = l.addPlot(0, 0)                 
p0.showGrid(x = True, y = True, alpha = 0.3)           
#p0.hideAxis('bottom')                
p1 = l.addPlot(1, 0)                 
p1.showGrid(x = True, y = True, alpha = 0.3)           

p1.setXLink(p0)                  

l.layout.setSpacing(0.)                
l.setContentsMargins(0., 0., 0., 0.)             

if __name__ == '__main__':               
    import sys                  
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):   
     QtGui.QApplication.instance().exec_() 

enter image description here

Если я прячу ось й в первом участке (раскомментирована p0.hideAxis('bottom') строки в коде), то ось уже не будет, но сетка исчезнет тоже:

enter image description here

Как я могу заставить его оставаться там? Поскольку обе оси х связаны друг с другом, я ожидал бы, что это будет возможно (сетка на верхнем участке может быть взята из оси X нижнего графика).

ответ

3

Вместо того, чтобы скрывать ось, попробуйте axis.setStyle(showValues=False).

(Это может быть доступна только в ветви разработки)

+0

Он отлично работает, но при использовании 'showValues ​​= false' линия, которая отделяет AxisItem и ViewBox все еще там. Будет ли способ избавиться от него, когда используется 'hideAxis'? – Peque

+0

Спасибо ... другим людям, пытающимся получить эту работу, вам также нужно скрыть метку с помощью 'axis.showLabel (False)' –