コマンドラインから操作するPython Matplotlibのインタラクティブプロット入門
Matplotlibでインタラクティブなプロットを実現するには、図(figure)をアクティブな状態にしておく必要があります。plt.ioff() と plt.ion() を使い分けることで、プロットに対するインタラクティブな操作の有効・無効を自由に切り替えることができます。
それでは、IPython シェルを起動し、以下のコマンドを順番に入力して動作を確認してみましょう。
実行例
In [1]: %matplotlib auto
Using matplotlib backend: GTK3Agg
In [2]: import matplotlib.pyplot as
In [3]: fig, ax = plt.subplots() # 図がポップアップ表示される。ここから操作可能。
In [4]: ln, = ax.plot(range(5)) # 線を描画
In [5]: ln.set_color("orange") # 描画した線をオレンジ色に変更
In [6]: plt.ioff() # インタラクティブモードを停止
In [7]: ln.set_color("red")
# 直前のステップでインタラクションを停止しているため反映されない
In [8]: plt.ion() # インタラクティブモードを再開
コードの解説
- %matplotlib auto:バックエンド(この例ではGTK3Agg)を有効にし、別ウィンドウで図を表示できるようにします。
- fig, ax = plt.subplots():新しい図とAxesを作成します。この時点で図が画面にポップアップ表示されます。
- ax.plot(range(5)):0〜4の値をもつ折れ線を描画し、そのLine2Dオブジェクトを変数
lnに保持します。 - ln.set_color("orange"):インタラクティブモードが有効な間は、描画済みの線の色が即座にオレンジへ変更されます。
- plt.ioff():インタラクティブモードをオフにします。以降の変更は自動的には画面に反映されません。
- ln.set_color("red"):モードがオフのため、色を赤に変更してもすぐには表示が更新されません。
- plt.ion():インタラクティブモードを再度オンにすると、保留されていた変更が画面に反映されます。
このように ion()(interactive on)と ioff()(interactive off)を切り替えることで、データの探索や可視化の調整をリアルタイムに行えるのがインタラクティブモードの大きな利点です。
出力

-
Matplotlibのラベルに改行を入れる方法|Pythonサンプルコード付きで解説
本記事では、PythonのMatplotlibを使って、グラフの軸ラベルに改行を挿入する方法を解説します。「\n」を活用することで、X軸やY軸のラベルを複数行に分けて見やすく表示できます。 実装手順 「\n」を使用して、X軸・Y軸それぞれのラベルに改行を含めたテキストを設定します。 plt.rc()メソッドで現在のrcParamsを設定し、axesグループに対してプロパティサイクルを適用します。 cyclerを使って、線の色のグループを設定します。色のリストは「r」(赤)、「g」(緑)、「b」(青)、「y」(黄)で構成されます。 Cyclerクラスは、単一の位置引数、2つの位置引数のペア、ま
-
PythonのMatplotlibでX軸に日付をプロットする方法
Pythonで時系列データを可視化する際、X軸に日付を表示したいケースはよくあります。PandasとMatplotlibを組み合わせれば、日付をインデックスとしたデータフレームを作成し、gcf().autofmt_xdate()を使うことでX軸の日付表示を自動的に整形できます。実装の手順日付文字列のリストを作成し、pd.to_datetime()を使ってdatetime型に変換します。プロットするデータとして data = [1, 2, 3] を用意します。DataFrame() オブジェクト(ここではDF)を生成します。DFの value 列に手順2のデータを設定します。手順1で作成したda