隐藏绘图轴但显示标签

问题描述 投票:0回答:3

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

python pyqt5 pyqtgraph
3个回答
0
投票

hack 是将绘制轴和刻度线的笔设置为与背景相同的颜色。可能有一种更简单的方法来设置 pen kwarg,但是一个非常简单的 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))}) 

0
投票

不幸的是,网格线和轴线共享同一支笔,因此使用 NoPen Qt.PenStyle,或将颜色设置为背景,也会删除网格线。然而,我们可以利用在绘制网格线时笔的 alpha 值被替换这一事实。将轴项目笔设置为使用默认颜色(前景),但具有零 alpha 值:

axis_pen = pyqtgraph.mkPen(pyqtgraph.getConfigOption('foreground') + (0, ))
...
self.plots[i].getAxis('right').setPen(axis_pen)

0
投票

https://pyqtgraph.readthedocs.io/en/latest/api_reference/graphicsItems/plotitem.html

在文档中。绘图项 -> showAxes

pi = self.tab.addPlot(...)
pi.showAxes(False, False)

这将禁用所有轴和刻度。

© www.soinside.com 2019 - 2024. All rights reserved.