我正在尝试在PyQt5中使用PyQtGraph创建一个图,但是在轴配置方面遇到了麻烦。我想隐藏轴,刻度和值,但要保留我将动态更改的标签。我遇到的问题是当我隐藏轴时标签也会被隐藏。有没有办法隐藏轴线并保留标签?
到目前为止,我仅设法隐藏了刻度和值,而没有隐藏轴本身。这是我用来配置轴的代码。
desc = self.descriptors[i]
self.plots[i].showAxis('right')
self.plots[i].getAxis('right').enableAutoSIPrefix(enable=False)
self.plots[i].getAxis('right').setLabel(text=desc, units=None)
self.plots[i].getAxis('right').setStyle(tickLength=0, showValues=False)
这是我到目前为止所拥有的。
这就是我要实现的目标。缺少垂直轴,但值仍然存在。
答案 0 :(得分:0)
一种技巧是将绘制轴和刻度线的笔设置为与背景相同的颜色。设置笔尖的方法可能比较简单,但是axisitem的非常简单的子类可以解决问题。
class MyStringAxis(pg.AxisItem):
def __init__(self, *args, **kwargs):
pg.AxisItem.__init__(self, *args, **kwargs)
然后在绘图上设置轴项。
plot.setAxisItems(axisItems={'left': MyStringAxis(orientation='left', pen=(0, 0, 0,
0))})
答案 1 :(得分:0)
不幸的是,网格线和轴线共享同一支笔,因此使用NoPen Qt.PenStyle或将颜色设置为背景也会删除网格线。但是,我们可以利用这样的事实,即绘制网格线时会替换笔的alpha值。将轴项笔设置为使用默认颜色(前景色),但alpha值为零:
axis_pen = pyqtgraph.mkPen(pyqtgraph.getConfigOption('foreground') + (0, ))
...
self.plots[i].getAxis('right').setPen(axis_pen)