Python PyQtGraphで軸ラベルと目盛りのフォントを設定する方法を説明する。
完成イメージ
結論
軸ラベルは.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で軸ラベルと目盛りのフォントを設定する方法を説明した。
コメント