2

私は最近、関数 subplots を見つけました。これは、subplot よりも複数のサブプロットを設定するよりエレガントな方法のようです。ただし、各サブプロットの軸のプロパティを変更できないようです。

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as npx = np.linspace(0, 20, 100)

fig, axes = plt.subplots(nrows=2)

for i in range(10):
    axes[0].plot(x, i * (x - 10)**2)
    plt.ylabel('plot 1')

for i in range(10):
    axes[1].plot(x, i * np.cos(x))
    plt.ylabel('plot 2')

plt.show()

最後のプロットの ylabel のみが表示されます。xlabel、xlim、ylim についても同じことが起こります。

サブプロットを使用するポイントは、サブプロットの共通レイアウトを作成することだと認識していますが、sharex と sharey が false に設定されている場合、いくつかのパラメーターを変更できないのでしょうか?

1 つの解決策は、代わりに subplot 関数を使用することですが、これを行う必要がありますか?

4

1 に答える 1

2

はいおそらく個々のサブプロットインスタンスを使用したいと思うでしょう。

見つけたようplt.ylabelに、最後のアクティブなプロットのylabelを設定します。個々のパラメータAxes、つまりサブプロットを変更するには、使用可能なメソッドのいずれかを使用できます。ylabelを変更するには、を使用できますaxes[0].set_ylabel('plot 1')

pyplot、またはplt定義したとおり、これらのオブジェクトを変数に格納することなくAxes、メソッドにすばやくアクセスするためのヘルパーモジュールです。ドキュメントFigureに記載されているように:

[Pyplot p]は、MATLABのようなプロットフレームワークを提供します。

このインターフェースは引き続き使用できますAxesが、現在アクティブなインターフェースを調整する必要がありますAxes。これを行うにpyplotは、axes(h)メソッドがあります。ここhで、はのインスタンスですAxes。したがって、あなたの例ではplt.axes(axes[0])、最初のサブプロットをアクティブにplt.axes(axes[1])設定し、次に他のサブプロットを設定するために呼び出します。

于 2012-02-23T15:03:28.817 に答える