質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

2回答

1389閲覧

Pandasのplotにはmatplotlibのオブジェクトが織り込まれている?

okahijiki

総合スコア404

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/03/31 06:14

もしかして、pandasのplotメソッドは、自動的に、matplotlibのサブプロットオブジェクトが指定される仕様になっているのでしょうか。あるチュートリアルをやっていたところ、出力されたグラフに、そのような記述が表示されるので「?」と思った次第です。

python

1import numpy as np 2from pandas import Series 3 4s= Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10)) 5s.plot()

イメージ説明

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

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

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

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

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

guest

回答2

0

これはmatplotlibにはほとんど関係なく、jupyterの挙動によります。

上の文字列はs.plot()の返り値です。jupyterを使っていると想定しますが、jupyterはセルの最後に評価された式を表示することを思い出してください(だからdfでデータフレームの中身が表示されたり)。

下のグラフは実際にプロットされたもので、こちらもjupyterの機能で表示されます。

投稿2020/03/31 07:14

hayataka2049

総合スコア30935

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

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

okahijiki

2020/03/31 08:19

ご回答、ありがとうございますー。 試しに(Macの)ターミナルより、iPythonで、同じコードを打ってみました。結果は、 matplotlib.axes._subplots.AxesSubplot at 0x113fc4d30がアウトプットされ、別ウィンドウにてグラフがポップアップされました。 では(ターミナルにて)pythonでは、どうか確かめてみたところ、グラフは表示されず、 matplotlib.axes._subplots.AxesSubplot object at 0x112a39ef0という表示のみでした。 ということは(iPythonのような別ウィンドウに表示されず)グラフがJupyter Notebookの同画面のセル上に表示されるのは、Jupyter Notebookの機能である、というふうに理解しましました。 一方、matplotlib.axes._subplots.AxesSubplot〜がJupyterの挙動による、というのは、どう理解したら、よいでしょうか iPythonでも、pythonでも、matplotlib.axes._subplots.AxesSubplot〜が表示された、という理由より。 ご回答の主旨を取り違えてましたら、すみません汗)
hayataka2049

2020/03/31 08:34

jupyter notebookって中身はipythonなので……ipythonの機能って書いた方がよかったですね。
hayataka2049

2020/03/31 08:36

おそらく試されているのはすべて対話環境(REPL環境)というくくりのものです。このような環境は、評価した式を印字してくれる「便利な機能」があります。 >>> 1 + 1 2 みたいな感じですね。 ファイルに書いてソースコードにして実行すれば「何も起きないように見える」と思います。
okahijiki

2020/03/31 09:14

>おそらく試されているのはすべて対話環境(REPL環境)というくくりのものです。 はい。REPLにて、ためしておりますー。 >ファイルに書いてソースコードにして実行すれば「何も起きないように見える」と思います。 一瞬、ファイルを読み込んだような「間」が空きますが、たしかに、何も起きていないように見えますー
hayataka2049

2020/03/31 10:11 編集

実行はされますが、何も出力する処理がないのでそのまま終わりますね。一番普通の挙動はそれです。
okahijiki

2020/03/31 12:10

おかげさまで、REPLのありがた味が分かったような気がしましたー。
guest

0

ベストアンサー

はい、おっしゃる通りです。pandasのドキュメントを参照すればわかりますが、デフォルトではmatplotlibを用いて描画されるようになっています。
なお、オプションで明示することで別のプロットを行うこともできます。

Uses the backend specified by the option plotting.backend. By default, matplotlib is used.

<参考>
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.plot.html

投稿2020/03/31 07:14

suomo

総合スコア82

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

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

okahijiki

2020/03/31 08:18

あ、pandasのチュートリアルも、あるんですね。 ちなみに、本件のコードは「pythonによるデータ分析入門」(オライリー・ジャパン)に依ります。筆者はWes McKinney。ご紹介いただいたチュートリアルの、About us > Teamのトップの写真の人物でもあります、というか、もともとpandasは、McKinneyさんが作成したライブラリーのようですねぇ。なんか、親近感がわいて参りました。ありがとうございますー。
suomo

2020/03/31 08:25

この手のものはドキュメントにあたると、さらっと書いてあることも多いですね。 その書籍は私も本屋などで見かけたことがありますが、pandasの作者と同じ方とは。まさしく、といった印象がありますね。 ところでhayataka様へのコメントをご覧になっていて思ったのですが、私こそ質問の意図を取り違えていたでしょうか……?あくまでpandasのplotは何か独自に実装されているわけではなく、単に裏でmatplotlibのplotを呼んでいるだけなのかどうかについての疑問と理解しておりました
okahijiki

2020/03/31 08:54

>単に裏でmatplotlibのplotを呼んでいるだけなのかどうかについての疑問と理解しておりました いえ、まちがってないです。まさに、その主旨でありますー。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問