Python | PyQtGraph フォント設定方法(軸ラベル、目盛り)

PyQtGraph

Python PyQtGraphで軸ラベルと目盛りのフォントを設定する方法を説明する。

完成イメージ

画像に alt 属性が指定されていません。ファイル名: image-12.png
フォント設定無し
画像に alt 属性が指定されていません。ファイル名: image-13.png
Yu Gothic UI
画像に alt 属性が指定されていません。ファイル名: image-10.png
フォント設定無し
Yu Gothic UI

結論

軸ラベルは.setLabel(‘left or bottom’, <font face=”フォント”>軸ラベル名</font>と設定する。

        横軸ラベル = '<font face="' + self.font + '">' + '大きさ</font>'
        縦軸ラベル = '<font face="' + self.font + '">' + '時間[秒]</font>'
        self.p0.setLabel('left', 横軸ラベル)
        self.p0.setLabel('bottom', 縦軸ラベル)

目盛りは.tickFont = QFont()のオブジェクトと設定する。

        self.font = 'Yu Gothic UI'
        self.font_obj = QtGui.QFont()
        self.font_obj.setFamily(self.font)
        self.p0.getAxis("left"  ).tickFont = self.font_obj
        self.p0.getAxis("bottom").tickFont = self.font_obj

コード例

#!/usr/bin/env python3

import numpy as np
import sys
from PyQt6.QtWidgets import QApplication, QWidget
from PyQt6 import QtGui
import pyqtgraph as pg


class GuiWindow(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.フォントを準備()
        self.サイン波を作成する()
        self.グラフを描画する()
        self.ラベルのフォントを設定する()
        self.目盛りのフォントを設定する()

    def フォントを準備(self):
        self.font = 'Yu Gothic UI'

    def サイン波を作成する(self):
        self.freq = 1    # サイン波の周波数 [Hz]
        self.Ts = 0.001  # サンプリング周期 [秒]
        self.Ns = 1000   # サンプリング点数 [個]
        self.ns = np.arange(0, self.Ns)  # サンプル番号

        self.time = self.ns * self.Ts
        self.sin = np.sin(2 * np.pi * self.freq * (self.ns * self.Ts))

    def グラフを描画する(self):
        self.graph = pg.GraphicsLayoutWidget(show=True)
        self.p0 = self.graph.addPlot()
        self.p0.plot(x=self.time, y=self.sin)

    def ラベルのフォントを設定する(self):                           ? 軸ラベルのフォント
        横軸ラベル = '<font face="' + self.font + '">' + '大きさ</font>'
        縦軸ラベル = '<font face="' + self.font + '">' + '時間[秒]</font>'
        self.p0.setLabel('left', 横軸ラベル)
        self.p0.setLabel('bottom', 縦軸ラベル)

    def 目盛りのフォントを設定する(self):                           ? 目盛りのフォント
        self.font_obj = QtGui.QFont()
        self.font_obj.setFamily(self.font)
        self.p0.getAxis("left"  ).tickFont = self.font_obj
        self.p0.getAxis("bottom").tickFont = self.font_obj

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = GuiWindow()
    sys.exit(app.exec())

まとめ

Python PyQtGraphで軸ラベルと目盛りのフォントを設定する方法を説明した。

コメント