この例で使ったのは、8個のデータが別のkeyでdataという辞書型に入ってる
nはデータの数
プロットは8個のデータをsubplotsで並べてプロットする
縦に8個並べるんじゃなくて、2x4で自動的に折り返す感じ
数字を変えたら、他のパターンも可能
q_1p, q_99p = np.percentile(data[ch], q=[1, 99])
は上位1%と上位99%の値を調べる
それを時系列データに同時にプロットする
from matplotlib import pyplot as plt fig = plt.figure() n = 8 n2 = int(n/2) fig, axes = plt.subplots(n2,2, figsize=(30, 15), sharex=True) k=0 for ch in data.keys(): ii=n k = int(ii / n2) i = ii % n2 axes[i, k].plot(data[ch], label=labels[ii], color="green") axes[i, k].legend(loc="upper right") #q_1p = np.quantile(data[ch], 0.01) #q_99p = np.quantile(data[ch], 0.99) q_1p, q_99p = np.percentile(data[ch], q=[1, 99]) axes[i, k].axhline(y=q_1p, color="m", alpha=0.7, linestyle='--') axes[i, k].axhline(y=q_99p, color="m", alpha=0.7, linestyle='--') axes[0, 0].set_title("time from %s" % time1) axes[0, 1].set_title("channel = %s" % ch_out) fig.savefig("./fig/hoge.png")
from matplotlib import pyplot as plt ax1 = plt.subplot(2, 1, 1) ax1.plot(data_freq, data_TF, color="skyblue", marker="o", linestyle="None", label="aaaaa") ax1.set_xscale('log') ax1.set_yscale('log') ax1.set_ylabel('magnitude') ax1.set_xlim(fmin, fmax) ax1.set_title("title daup") ax1.legend(loc="upper right") ax2 = plt.subplot(2, 1, 2) ax2.plot(data1, data2, label="coherence (original)") ax2.set_xscale('log') ax2.set_xlabel('frequency [Hz]') ax2.set_ylabel('coherence') ax2.set_xlim(fmin, fmax) ax2.legend(loc="lower right") plt.savefig(fname) plt.show()