4

次のような方法でプロットを作成しています。

import pyplot as plt

for x_list in x_list_of_lists:
   plt.plot(y_list, x_list)

plt.show()

x 軸の範囲は、plt.plot() に渡される x 値の最初のリストの範囲に設定されているようです。pyplot に x 軸の下限を、渡されたすべての x_list 変数の最小値に自動的に設定させ (さらに少し余裕を持たせて)、上限についても同じように設定する方法はありますか? plot に渡された x の最大値 (および少しの余裕)? ありがとうございました。

4

1 に答える 1

18

紛らわしいことに、 youry_listには に沿ってプロットされる値が含まれていますx-axisx_listmatplotlib でasの値を使用する場合x-coordinatesは、呼び出す必要があります。

plt.plot(x_list, y_list)

多分これがあなたの問題の根源です。デフォルトでは、matplotlib はプロットされたすべてのデータを含めるのに十分な大きさの制限を設定xします。y

したがって、この変更により、matplotlib はx_listasを使用するようになり、 で指定されたすべてを表示するのに十分な幅になるようにx-coordinatesの制限が自動的に設定されます。x-axisx-coordinatesx_list_of_lists


xただし、制限を調整したい場合は、 plt.xlim 関数を使用できます。

したがって、 の下限をx-axisすべての変数の最小値に設定するにはx_list(上限も同様に)、次のようにします。

xmin = min([min(x_list) for x_list in x_list_of_lists])-delta
xmax = max([max(x_list) for x_list in x_list_of_lists])+delta
plt.xlim(xmin, xmax)

へのすべての呼び出しのplt.plot、(もちろん) の前にこれを配置するようにしてくださいplt.show()

于 2013-07-28T12:28:04.300 に答える