🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

9735閲覧

%matplotlib inlineは不要では?

gaugino

総合スコア5

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2020/01/06 15:00

Jupyter Notebookで図をインラインで表示するには、次のような「%matplotlib inline」を実行する必要があると、ネット上あちらこちらで書かれているのですが、たとえば次のコードを打ち込むと、
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)

先頭の「%matplotlib inline」なしでもJupytel Notebookにグラフが表示されます。

イメージ説明

小生が「インラインで表示」の意味を理解していないのか、python3.7では不要なのか、どなたかご指導ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

画像は In [4]のセルに入力しています。この上でマジックコマンドを実行済みだったのではないですか?

起動直後のnotebookで、つまりIn [ ]のセルだけがある状態で

import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y)

を実行してみてください。グラフがでないはずですよ。


%matplotlib inline は、

https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-matplotlib

This function lets you activate matplotlib interactive support at any point during an IPython session. It does not import anything into the interactive namespace.

とへ明記されている通り、matplotlib のインタラクティブサポートを有効化するためのコマンドです。


例えばjupyter consoleコマンドなどでJupyterを動かした場合、コンソールで動きますから%matplotlib inlineをしてもコンソールに画像が出ないので意味がありません。

macOS上では、そこでコードplt.plot(...)を実行すると画像がテンポラリに保存されてプレビューアプリケーションが起動されます。

%matplotlib osxしてからコードplt.plot(...)を実行するとPythonがウィンドウを出して画像を表示してくれます。


例えばjupyter qtconsoleコマンドでJupyterを動かした場合、画像が表示できるコンソールで動きますから%matplotlib inlineをするとplt.plot(...)の結果を画像として表示するようですね。
https://stackoverflow.com/questions/38128640/use-both-matplotlib-inline-and-qt-in-jupyter-notebook#answer-38129646

他のGUIライブラリのqtやtkが使えるようにビルドされたPythonを使っていれば、%matplotlib qtとか%matplotlib tkというような選択肢もあると思います。


実際やってみるとこのスイッチがどこかに保管されていて、今何が有効なのか? がつかみづらかったです。
確かに、1度目はインライン表示されないが2度実行すると表示される、みたいなことも、特にinline指定しなくても表示される、みたいなことも起こりました。

投稿2020/01/07 00:02

編集2020/01/10 07:09
quickquip

総合スコア11231

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/01/07 01:32

私もそう思って試したところ、私の環境ではグラフ出ました。(windows8、anaconda、python3.7) 出ないかと思ってたんですが、何故だか自分でも解りません。何か特別なことをした記憶はないのですが、以前に何か設定?したかもですが。。
gaugino

2020/01/07 02:57

環境はwindows10、anaconda3、python3.7です。 起動直後のnotebookで、つまりIn [ ]のセルだけがある状態で実行すると、確かに1回目は何も出ませんが、もう1回実行するとグラフが出ます。「%matplotlib inline」は、「どうしてもグラフ出てこない場合のおまじない」ということですか。
gaugino

2020/01/10 05:02

「%matplotlib inline」が必要な場合が理解できていません。plot.show()の必要性もあいまいなのですが、複数グラフの場合などは確かにこれがないと不具合が生じます。ここにはJupyterのコードセルが関係しているのかもしれません。import文の影響が他のコードセルにも及びます。どなたか、きっぱりしたご回答を頂戴できませんか。
quickquip

2020/01/10 07:10

> 1回目は何も出ませんが、もう1回実行するとグラフが出ます 何かの拍子に再現してビックリしました。わかるかぎりのことは追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問