Plotの描画関連
複数の時系列を縦に並べてplotする
ここに書いてある、gwpy.plotのPlot()がオススメ。
注意点は、TimeSeriesのlistやTimeSeriesDictを引数にしてまとめて渡した場合は separate=True をしても分割されないという謎仕様。面倒だが1つ1つ手で並べる必要がある。
1 from gwpy.plot import Plot
2 plot = Plot(l1hoft, h1hoft)
3 plot = Plot(l1hoft, h1hoft, separate=True, sharex=True)
4 plot.show()
戻り値 (ここでは plot)は、matplotlibのfigureだと思ってしまってよい。
なので、それぞれのy軸ラベルや全体のタイトルを付けるには以下のようにする。
1 import matplotlib.pyplot as plt
2 axes = plot.get_axes()
3 ylabel = ['y1','y2']
4 for i, ax in enumerate(axes): ax.set_ylabel(ylabel[i])
5 plt.tight_layout()
6 plt.subplots_adjust(top=0.95)
7 plot.suptitle('title')
時刻の基準を手で設定する
ここを参照
1 ax = plot.gca()
2 ax.set_epoch(1126259462)
DQ Flagを添える
.add_segments_bar() を使う(ここを参照)。
他にも .add_state_segments() や .add_dataqualityflag() といった似たものがある。詳細はPlotting APIを参照。
matplotlib色々
プロットの複雑なレイアウトはGridSpecが便利かも、という話
matplotlibで一定区間に背景色をつける方法