Pythonのmatplotlibで図を描画しようとするプログラムを作成。
いざ実行すると、plt.show()が抜けていて、図がでないということがないでしょうか。
どうにかplt.show()を省略できないのかということでいろいろ調べました。
JupyterNotebookの場合
どうやら以下のように一文挿入することでplt.show()が省略できるようです。
%matplotlib inline
また、以下のように記述すると、よりインタラクティブに操作ができます。
%matplotlib notebook
JupyterNotebookを用いない場合
現に私は、JupyterNotebookは使っていません。ですので、JupyterNotebook以外での方法がないのか模索しました。
すると、IPythonでもplt.show()を省略できるようです。
1行目に%matplotlib inline
を指定することで、plt.show()を省略できます。
また、私の環境(OS:Ubuntu、Ipython 7.19.0、python 3.8.5)では、%matplotlib inline
をしても図は表示されませんでした。
<Figure size 432×288 with 1 Axes>とあり、図は出ているようですが、ターミナル上であるためでないようです。
In[1]: %matplotlib inline
In[2]: import matplotlib.pyplot as plt
In[3]: import numpy as np
In[4]: xx=np.linspace(-10,10,100)
In[5]: yy=np.sin(x)
In[6]: plt.plot(x,y)
<Figure size 432×288 with 1 Axes>
In[7]:
%matplotlib notebookでは、代わりにqtを使えとのことです。
In[16]: %matplotlib notebook
Warning: Cannot change to a different GUI toolkit: notebook. Using qt instead.
なので、%matplotlib qtを用います。すると、別ウィンドウで図が出ました。
In[1]: %matplotlib qt
In[2]: import matplotlib.pyplot as plt
In[3]: import numpy as np
In[4]: xx=np.linspace(-10,10,100)
In[5]: yy=np.sin(x)
In[6]: plt.plot(x,y)
Out[6][:<matplotlib.lines.Line2D at 0x7f8507bd8190>]
In[7]:
まとめ
JupyterNotebookやIPythonでないと省略できないということでした。
これを機にJupyterNotebookを使ってみたいと思います。