プロットするための推奨される方法はどれですか:matplotlibまたはpylab?[閉まっている]


88

次のいずれかを使用してPythonでプロットできることがわかります。

import matplotlib
matplotlib.pyplot.plot(...)

または:

import pylab
pylab.plot(...)

これらは両方とも同じmatplotlibプロットコードを使用します。

では、Matplotlibの開発者/ドキュメントが現在プロットするためのより良い方法として推奨しているのはどれですか?どうして?



9
自己参照の重複?
狂牛病の物理学者

4
これは意見に基づいて閉じられるべきではありません。Matplotlibのドキュメントから明確な答えがあります:常に使用matplotlib.pyplot
Bernhard

回答:


104

公式ドキュメント:Matplotlib、pyplot、pylab:それらはどのように関連していますか?

これらのインポートはどちらも、まったく同じことを実行し、まったく同じコードを実行します。これは、モジュールをインポートする方法が異なるだけです。

またmatplotlib、2つのインターフェイスレイヤーがあり、によって管理されるステートマシンレイヤーpyplotとOOインターフェイスpyplotがその上に構築されていることに注意してください。図のインスタンスにpyplot関数をアタッチするにどうすればよいですか?を参照してください

pylabは、多数の便利な関数(pyplotステートマシン関数、ほとんどnumpy)を単一の名前空間に一括インポートするためのクリーンな方法です。これが存在する主な理由は(私の理解では)、ipythonMATLABを多かれ少なかれ複製する非常に優れたインタラクティブシェルを作成するためです(移行を容易にし、遊んでみるのに適しているため)。見るpylab.pymatplotlib/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

良いスタートです。

matplotlibGUIに埋め込んでいる場合は、追加のGUIメインループが開始されるため、pyplotをインポートしたくありません。インポートする内容は、実行している内容によって異なります。


19
pylabとpyplotの違いは、前者がnumpyを名前空間にインポートすることです。これは、matlabと同様に動作させるためでした。pylabの代わりにpyplotを使用することは、よりクリーンであるため、現在は好まれています。
クリスチャンアリス2013年

8

https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-relatedのドキュメントには、pyglotとpylabの違いも記載されていますが、次のように述べています。 pylab、もうお勧めしません。」。ですから、pylabを使う理由も心配する理由もありません。


1
これは受け入れられた答えでなければなりません。「公式」ドキュメントは源泉であり、pylabは推奨されなくなったと書かれています。
dturvene
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.