1. ホーム

%matplotlib インラインに関する Python エラー

2022-02-22 18:33:13

取得元 https://www.jianshu.com/p/2dda5bb8ce7d

時系列予測にLSTMモデルを使う必要があるコンテストに取り組んでいるのですが、そうするとgithubのコードでこんな感じのコードをよく見かけます。

import numpy
import matplotlib.pyplot as plt
from pandas import read_csv
import math
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
%matplotlib inline


最後の%matplotlib inlineの文が変で、spyderやpycharmなど、どのpython IDEを使っていても、エラーを報告して無効な構文が表示されます。では、そもそもなぜこの文がコード中にあるのでしょうか?ということが判明しました。
%matplotlib の役割

  1. matplotlibがよく使われるのはjupyter notebookやjupyter qtconsoleを使っているときで、そのコードの一部はjupyter notebookやjupyter qtconsoleを使っている他の人によって編集された可能性があることを意味します。jupyter notebookがどのようなものかについては、こちらのリンクを参照してください。[Jupyter Notebookの紹介、インストール、使い方のチュートリアル][1]をご覧ください。
  2. そして、%matplotlib が特に行うことは、 matplotlib.pyplot の plot 関数 plot() を呼び出してプロットするとき、または figure canvas を生成するときに、 Python コンソール内に直接画像を生成することです。

そして、実際にspyderやpycharmでコードを実行する際も、この文章をコメントアウトするだけで正常に実行されます。次のような例です。

fig = plt.figure(facecolor='white')
ax = fig.add_subplot(111)


<イグ

プロット実行中のスクリーンショット

このように、軸を持った図形オブジェクトが生成され、キャンバスカラーは白になります。


著者:hplllrhp
リンク: https://www.jianshu.com/p/2dda5bb8ce7d
出典 ジェーンの本