2×2のグラフを作って、かつ、縦と横の軸はshareする設定(x1は2つのグラフで共通。x2,y1,y2も同様)にしたいと思っております。ただ、以下のスクリプトだと、axesを2回実行しているので、軸上の文字が重なってしまいます(下に画像添付)。
一方、axes[0, 0]~4行のデータを消すと、文字の重なり問題は解消するのですが、for文の中で軸の共通設定ができない状態です。
この場合、どのように対応したらいいかアドバイスいただけないでしょうか?
また、今は2×2のグラフですが、可能なら4×4のグラフまで拡張したいと思っており、できるだけfor文で実行したいと思っています。
Python
1import... 2 3X = np.random.randn(100) 4y = np.random.randn(100) 5 6fig, axes = plt.subplots(2, 2, figsize=(8, 8)) 7axes[0, 0] = fig.add_subplot(221) 8axes[0, 1] = fig.add_subplot(222, sharey=axes[0, 0] 9axes[1, 0] = fig.add_subplot(223, sharex=axes[0, 0]) 10axes[1, 1] = fig.add_subplot(224, sharex=axes[0, 1], sharey=axes[1, 0]) 11 12for i, name in enumerate(["y1","y2"]): 13 axes[i, 0].set_ylabel(name) 14 for j, X_name in enumerate(["x1","x2"]): 15 axes[1, j].set_xlabel(X_name) 16 axes[i, j].scatter(X, y)
【追記】
sharexやshareyを全体に適用していまうと、以下のように、各軸(この場合、x1とx2)のスケールが異なる場合にうまく表示されません。下図の場合、x1は[-3:3]、x2は[-30:30]と個別に設定したいです(ただ、上下のグラフではsharexを行いたい)。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/20 07:18