- データ形式はX [0, 1, 4, 9], Y[0, 3, 9, 8], Z[9,4, 8, 3]のように一次元配列が複数あり, それらを上から横方向に一次元でプロットさせていきたいという感じです
- 自力というのは表現が悪く, matplotlibを用いようと思っています
python
1from matplotlib import pyplot as plt
2
3X = [0, 1, 4, 9]
4Y = [0, 3, 9, 8]
5Z = [9, 4, 8, 3]
6data = [X, Y, Z]
7label = ['X', 'Y', 'Z']
8l = len(data)
9x = range(len(X))
10
11fig = plt.figure()
12gs = fig.add_gridspec(l, hspace=0)
13axs = gs.subplots(sharex=True)
14
15fig.suptitle('Multiple plots')
16for i in range(l):
17 axs[i].scatter(x, data[i])
18 axs[i].set_xticks(x)
19 y1, y2 = axs[i].get_ylim()
20 print(y1, y2)
21 length = y2 - y1
22 axs[i].set_ylim((y1-length*2, y2+length*2))
23 axs[i].set_yticks([y1+(y2-y1)/2])
24 axs[i].set_yticklabels(label[i])
25
26for ax in axs:
27 ax.label_outer()
28 ax.grid()
29
30for ax in axs[:-1]:
31 ax.spines[['right', 'left', 'top', 'bottom']].set_visible(False)
32
33axs[-1].spines[['right', 'left', 'top']].set_visible(False)
34
35plt.show()
