まとめ
pyqtgraphのPlotItemの軸のラベルとticksのラベルを設定するにはAxisItem
を使う。
背景
pyqtgraphを用いてグラフを描画したいとき、PlotItemを用意し、その中にグラフを描画することができる。
また、2次元データを表示する方法としてImageItem
を与える方法があるが、デフォルトでは軸の値はデータ数に相当する。
この軸のticksに好きな値を設定したい。
方法
pyqtgraph.AxsItem()
を使うことで、PlotItemの軸のラベルとticksのラベルをセットすることができる。
使い方はStack Overflowを参考に、次のようにする。
import pyqtgraph as pg
# レイアウトの用意
glw = pg.GraphicsLayoutWidget()
# 軸の用意。与えられるのはbottom, left, top, right
axBottom = pg.AxisItem(orientation="bottom")
# 軸のticksのラベルの用意。dict形式で与える
tickBottom = {0:-50, 50:0, 100:50}
# 軸のticksのラベルを設定する
axBottom.setTicks([tickBottom.items()])
# 軸のラベルの用意
labelBottom = "Value1"
# 軸のラベルを設定する
axBottom.setLabel(labelBottom)
# 別の軸を用意する
axLeft = pg.AxisItem(orientation="left")
# 以下、axBottomの場合と同様に設定する
...
# PlotItemの用意。PlotItemには後から軸を設定するメソッドがないようなので、この段階でPlotItemの軸を設定する。
p1 = glw.addPlot(
axisItems={"bottom":axBottom, "left":axLeft}
)
...
# PlotItemに設定された軸のパラメータを後から更新する場合は、setLabelやsetTicksを利用する。
tickBottom_new = {0:-20, 50:30, 100:130}
ax.Bottom.setTicks([tickBottom_new.items()])
...