如何使用 PyQtgraph 更改绘图的刻度字体大小

Posted

技术标签:

【中文标题】如何使用 PyQtgraph 更改绘图的刻度字体大小【英文标题】:How to change ticks fontsize of a plot using PyQtgraph 【发布时间】:2017-06-03 01:44:03 【问题描述】:

一切都在标题中,如何使用 pyqtgraph 更改刻度的字体大小?

谢谢

【问题讨论】:

一切都可能在文档中。也许作为你的代码?和你的试验? 一切都在谷歌!这在多大程度上没有帮助?请确保您拥有taken the tour,尤其是阅读过How to ask a question。 抱歉不够精确。 pyqtgraph 的文档对我和谷歌都没有帮助。我在 pyqtgraph 支持论坛上看到了一篇帖子,指出要使用带有关键字“tickFont”的 setStyle 函数,但我不知道如何正确使用它。因此,如果使用 self.my_plot = pg.PlotWidget() 创建我的图形,然后使用 self.my_plot.setStyle(xxx),我应该放什么而不是 xxx,例如字体大小是原来的两倍?跨度> 【参考方案1】:

我认为在 pyqtgraph 中更改刻度标签字体大小的唯一方法是首先在 PyQt 中创建一个新字体并将字体大小设置为它。然后可以将此字体应用于刻度。

font=QtGui.QFont()
font.setPixelSize(20)
plot.getAxis("bottom").tickFont = font

最初我会认为类似plot.getAxis("bottom").setStyle(tickFont = font) 应该也可以,但由于某种原因它没有。

一旦字体大小增加,调整tickOffset 也是有意义的。找到完整的运行代码如下。

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


app = QtGui.QApplication([])

x = np.linspace(-50, 50, 1000)
y = np.sin(x) / x

win = pg.GraphicsWindow()
plot = win.addPlot(x=x, y=y, title="Plot")
plot.setLabel('bottom', "some x axis label")

font=QtGui.QFont()
font.setPixelSize(20)
plot.getAxis("bottom").tickFont = font
plot.getAxis("bottom").setStyle(tickTextOffset = 20)


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

【讨论】:

【参考方案2】:

似乎没有太多关于这方面的文档,但任何像我一样在这方面苦苦挣扎的人可能会发现source code for AxisItem 很有用。

【讨论】:

【参考方案3】:

对于 Pyqtgraph 0.11,语法已更改为:

font=QtGui.QFont()
font.setPixelSize(20)
plot.getAxis("bottom").setStyle(tickFont = font)

plot.getAxis("bottom").setTickFont(font)

【讨论】:

救世主!谢谢

以上是关于如何使用 PyQtgraph 更改绘图的刻度字体大小的主要内容,如果未能解决你的问题,请参考以下文章

Pyqtgraph plotwidget:无法将轴刻度的字体粗细更改为 BOLD

PyQtGraph PlotWidget:如何强制每次绘制(更改范围)以进行“实时”绘图

如何更改 matplotlib 中绘图的轴、刻度和标签的颜色

如何使用 pyqtgraph 的 GLViewWidget 将轴特征(标签、刻度、值)添加到 3D 图中?

pyqtgraph绘图如何使用pyqtgraph

如何更改 matplotlib 中轴对象刻度的字体大小 [重复]