隐藏绘图轴但显示标签

时间:2019-09-06 16:06:57

标签: python pyqt5 pyqtgraph

我正在尝试在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)

这是我到目前为止所拥有的。 What I have

这就是我要实现的目标。缺少垂直轴,但值仍然存在。 What I have

2 个答案:

答案 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)