次のいずれかを使用してPythonでプロットできることがわかります。
import matplotlib
matplotlib.pyplot.plot(...)
または:
import pylab
pylab.plot(...)
これらは両方とも同じmatplotlibプロットコードを使用します。
では、Matplotlibの開発者/ドキュメントが現在プロットするためのより良い方法として推奨しているのはどれですか?どうして?
次のいずれかを使用してPythonでプロットできることがわかります。
import matplotlib
matplotlib.pyplot.plot(...)
または:
import pylab
pylab.plot(...)
これらは両方とも同じmatplotlibプロットコードを使用します。
では、Matplotlibの開発者/ドキュメントが現在プロットするためのより良い方法として推奨しているのはどれですか?どうして?
matplotlib.pyplot
回答:
公式ドキュメント:Matplotlib、pyplot、pylab:それらはどのように関連していますか?
これらのインポートはどちらも、まったく同じことを実行し、まったく同じコードを実行します。これは、モジュールをインポートする方法が異なるだけです。
またmatplotlib
、2つのインターフェイスレイヤーがあり、によって管理されるステートマシンレイヤーpyplot
とOOインターフェイスpyplot
がその上に構築されていることに注意してください。図のインスタンスにpyplot関数をアタッチするにはどうすればよいですか?を参照してください。
pylab
は、多数の便利な関数(pyplot
ステートマシン関数、ほとんどnumpy
)を単一の名前空間に一括インポートするためのクリーンな方法です。これが存在する主な理由は(私の理解では)、ipython
MATLABを多かれ少なかれ複製する非常に優れたインタラクティブシェルを作成するためです(移行を容易にし、遊んでみるのに適しているため)。見るpylab.py
、matplotlib/pylab.py
あるレベルでは、これは純粋にに好みの問題であり、あなたが何をしているかに少し依存します。
GUIに埋め込まれていない場合(バルクスクリプトに非インタラクティブバックエンドを使用するか、提供されているインタラクティブバックエンドの1つを使用する)、一般的な方法は次のとおりです。
import matplotlib.pyplot as plt
import numpy as np
plt.plot(....)
名前空間を汚染しません。ものがどこから来たのかを追跡できるように、これが好きです。
使用する場合
ipython --pylab
これは実行するのと同じです
from pylab import *
新しいバージョンでは、ipython
を使用することをお勧めします
ipython --matplotlib
これにより、インタラクティブなバックエンドが適切に機能するように適切な背景の詳細がすべて設定されますが、何も一括インポートされません。必要なモジュールを明示的にインポートする必要があります。
import numpy as np
import matplotlib.pyplot as plt
良いスタートです。
matplotlib
GUIに埋め込んでいる場合は、追加のGUIメインループが開始されるため、pyplotをインポートしたくありません。インポートする内容は、実行している内容によって異なります。
https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-relatedのドキュメントには、pyglotとpylabの違いも記載されていますが、次のように述べています。 pylab、もうお勧めしません。」。ですから、pylabを使う理由も心配する理由もありません。