plt.show()はいつ必要?いつ不要?fig.show()との違いを解説
Matplotlibでグラフを表示するとき、「plt.show()」と「fig.show()」のどちらを使えばよいのか迷ったことはありませんか。結論から言うと、対話モード(インタラクティブモード)が有効でない場合はplt.show()を使用し、対話モードが有効な環境ではfig.show()を使うことですべての図(フィギュア)を表示できます。
ここでは、実際のコード例を通して両者の違いを確認してみましょう。
検証の手順
iPythonシェルを起動します。
図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。
新しい図を作成するか、既存の図をアクティブにします。
plot()メソッドを使って折れ線を描画します。
show()メソッドで図を表示します。
block=Falseを指定したshow()メソッドでも図を表示してみます。
コード例
import numpy as np from matplotlib import pyplot as plt # 図のサイズを設定 plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # 新しい図を作成 fig = plt.figure() # 折れ線を描画 plt.plot(np.linspace(-5, 5, 100)) fig.show() plt.show(block=False)
実行結果
上記のコードを実行すると、次のような出力が得られます。

この出力が得られるのは対話モードが有効な場合のみです。対話モードが無効な通常のスクリプト実行環境では、block=True(デフォルト設定)を指定したplt.show()を呼び出すことで、図が正しく表示されます。
つまり、スクリプトとして一括実行する場合はplt.show()、Jupyter NotebookやiPythonなどの対話的な環境で個別の図を表示したい場合はfig.show()を使い分けるのがポイントです。
-
Matplotlibで長方形の内側に円を描画する方法
Matplotlibを使えば、長方形の内側に円を配置した図を簡単に作成できます。この記事では、patchesモジュールを利用して、長方形と円の2つの図形を1つのプロット上に重ねて描く手順を解説します。 実装の手順 長方形の内側に円を描画するには、以下のステップに従います。 figure()メソッドを使って、新しい図を作成するか、既存の図をアクティブにします。 現在の軸(Axes)にサブプロットを追加します。 Rectangle(長方形)とCircle(円)のインスタンスを作成します。 長方形のパッチを現在の軸に追加します。 円のパッチを現在の軸に追加します。 xlim()およびylim()メ
-
Matplotlibのグラフをフルスクリーンで表示する方法
Matplotlibで作成したグラフをフルスクリーン(全画面)で表示したい場合、full_screen_toggle()メソッドを使用すると簡単に実現できます。このメソッドは、現在開いているフィギュアウィンドウを全画面モードに切り替える機能を持ちます。 手順 figure()メソッドを使って、新しいフィギュアを作成するか、既存のフィギュアをアクティブにします。 2つのリストを渡してplot()メソッドを呼び出し、折れ線グラフを描画します。 get_current_fig_manager()メソッドで、現在のフィギュアのマネージャー(figure manager)を取得します。 取得したマネー