Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

なぜ、plt.show()が抜けたコードによく出会うのか? いつ、plt.show()は必要なのか?

概要

表題の通り。
Pythonを使った深層学習に関連する記事で、サンプルのコードをそのまま手元で動かして、画像が表示されなくて、寂しい気分になることがある。
経験的に、plt.show()を追加したら表示されることは覚えていたり、忘れていたりだが。。。
モジュールのバージョンの違いかな???と思ったりしている人もいるかも。

ちょっと、調べたので、情報を共有する。

いろいろいい記事がすでにあると思いますが、plt.show()のみにまとを絞りました。

調べた結果

この説明がいいのでは?(https://stackoverflow.com/questions/54422714/when-is-plt-show-required-to-show-a-plot-and-when-is-it-not)

以下の記事に以下の回答が示されていた。
(引用元:https://stackoverflow.com/questions/54422714/when-is-plt-show-required-to-show-a-plot-and-when-is-it-not

To require or not required depending on where your script is.

There are 2 contexts.(

  • Matplotlib is used in a terminal or scripts, plt.show() is a must.

  • Matplotlib is used in a IPython shell or a notebook (ex: Kaggle), plt.show() is unnecessary.

この記事を、わざわざ引用したのは、原因が、jupyter notebookに「のみ」関連するのかな?と思っていたが、それ以外の環境である可能性もあると気付いたため。

Jupyter notebookとかで、plt.show()がなくても、画像が表示される理由。

下記の記事

https://docs.pyq.jp/python/pydata/jupyter/matplotlib.html

を抜粋引用すると

(引用)Jupyter Notebookでは、セルの最後に評価したオブジェクトが出力されます。

らしい。

セルの最後に評価したオブジェクトが出力される らしい。なるほど。それなら、わざわざ、showする必要なしですね。

まとめ

特にありません。
コメントなどあれば、お願いします。:candy:
(シングルクォートを記事で初めて使った。)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away