Python

【Python】Plotly Expressによるいろいろなグラフの描画手法まとめ

Plotly Expressによる描画

今回はPlotly Expressによる描画をPythonを使って紹介していきたいと思います。

Plotly ExpressはPlotly社が開発した描画ライブラリPlotlyのラッパーでPythonやR、JavaScriptでも使うことができます。

特徴はインタラクティブ(マウスでグリグリ動かすことができる)な可視化です。

今まではPythonユーザですとMatplotlibを使う方が多かったと思いますが、あれだと静的で動かないので、インタラクティブな動作が可能なグラフは見る側としてとてもgoodですよね。

ということで今回はPlotly Expressでどんな可視化ができるのかというのを紹介します。

ちなみに別記事でPlotlyによる可視化設定(Figure, Trace, Layout)の記事も書いており、こちらも読むことでどのようにタイトルをつけたり軸名を変えたりなどカスタマイズができるようになりますから、ぜひ一緒に読んでもらえるとよいかと思います。

【Python】Plotlyの描画手法まとめ(Figure, Trace, Layout)

今回はPlotlyという描画ライブラリのPythonでの描画手法について紹介したいと思います! PlotlyはPlotly社が提供しているライブラリで、Python以外にもRやJavaScriptなど ...

また、ぼくはこちらの書籍も参考にしました。

興味がある方は見てみてください!

 

Plotly Expressのインストール

まずはPlotly expressをインストールしましょう!

簡単にpipでインストールできます。

 command
pip install plotly_express

pip以外にもcondaでもできます。condaではplotly経由でインストールします。

 command
conda install -c plotly plotly_express

 

使用するデータ

まずはこの記事で使っていくデータを紹介しておきます。

データはGapMinderというデータを使います。

こちらは世界中の国が年々どのように人口や経済力などが変化していったかをまとめたデータで、plotly expressでダウンロードができます。

データフレームに格納すると上記のようになっていますね。

国名がありますので、どんな国があるか確認しましょう。

たくさんありますね!

では、次は大陸です。

こちらはシンプルに5大陸あります。

年はどうでしょうか?

1952年から2007年までのデータがあります。

割愛しますが、各年で全ての国のデータが格納されています。

では大陸別の国数はどうでしょうか?

このようにアフリカが52カ国と多く、オセアニアは2カ国しかありません。

大陸ごとに国の数が異なるのは確認しておいてよかったですね

 

Plotly Expressによる描画手法

散布図

まずは散布図からいきましょう!
plotly expressをimportしたのち、px.scatterで簡単に散布図を描くことができます。

 

色で大陸を表したり、ログスケールにしたりいろいろな情報をつけることができます。

(情報を付け加えることは簡単にできますが、調子に乗るとわけわからなくなるので、ほどほどにするのがいいと思います)

 

グラフ設定〜タイトル・軸・フォント

一旦グラフ(散布図)を描くことができましたが、まだタイトルや軸の設定などができていませんね。

タイトルや軸などの情報は例ですが、次のようにupdate_layoutを使って付け加えることができます。

layout設定などは別の記事でもう少し詳しく説明しているので、こちらを読んでみてください!

【Python】Plotlyの描画手法まとめ(Figure, Trace, Layout)

今回はPlotlyという描画ライブラリのPythonでの描画手法について紹介したいと思います! PlotlyはPlotly社が提供しているライブラリで、Python以外にもRやJavaScriptなど ...

 

ラインプロット

ラインプロット(折れ線グラフ)はLineという関数で一発です。

折れ線グラフで大陸別に平均寿命をプロットしています。

 

棒グラフ

棒グラフは日本の年別の人口にしました。

 

箱ひげ図

こちらでは大陸別に国ごとの平均寿命を箱ひげ図で示しています。

年は2007年にしており、アフリカやアジアはバラつきが大きいのがわかりますね。

 

バイオリン図

バイオリン図は上の箱ひげ図と同様のプロットをしています。

箱ひげ図よりも分布がわかるので、分布がみたい方はこちらのほうがいいですね。

 

ヒストグラム

2007年の各国の寿命をヒストグラムで書きました。

ピークは70-80歳ですが、40歳くらいまでも少ないながら伸びていますね。

 

円グラフ

ちょっと適切ではないですが、年ごとの平均寿命を強引に円グラフにしています。

とりあえず円グラフの描き方ということで。。。

 

階級区分図(コロプレス図)

あまり馴染みがないかもしれませんが、階級区分図(コロプレス図とも呼ばれる)です。

地図上にある変数を色でマッピングして表す図になっています。

今は、2007年の1人あたりGDPを色で表現しています。

国ごとの違いがわかりやすいですね!

 

複数パネルのプロット

複数枚パネルのプロットです。

plotly expressでは変数のカテゴリによって、複数のパネルを作ることができます。

ここではfacet_colにcontinentを指定することで、大陸ごとに横にグラフを5つ作っています。

他にもplotlyのsubplotを使って複数枚パネルを作ることもできます。

 

アニメーション付きのグラフ

Plotly Expressではアニメーションもつけることができます。

animation_frameという引数にyearを指定することで、年ごとの1人あたりGDPの変化をアニメーションで表せます。

下の「アニメーションプロット」というリンクのHTMLを開いて見てみてください!

アニメーションプロット

 

最後に

今回はPlotly Expressによる描画を紹介しました。

データフレームができていれば、数行でかなりイケてるグラフが描けることがわかったのではないでしょうか。

軸やタイトル設定などは慣れないと少し難しいかもですが、全体としては十分簡単だと思います。

ぜひPlotly Expressを使ってグリグリ動くグラフを作りましょう!

もっと詳しく知りたい方は、Udemyにも動画があるので見てみるとよいかと思います。

最後まで読んでいただき、ありがとうございました!

おすすめ記事

1

お疲れさまです! 久しぶりの更新になってしまいましたが、僕が未経験からデータサイエンティストになるまでの転職活動の全記録を書き残しておきたいと思います。 僕は博士号を取得後に研究員として仕事をしていま ...

2

こんにちわ、さとしです! 気がつけばこのデータサイエンティスト転職から、1年が経とうとしています。 今はご時世的に外にも出られず、変化があまりない生活を送ったせいもあってか、なんかあっという間に1年が ...

3

データサイエンティストに転職して1年が経ち、いろいろな業務を経験させてもらいつつ、自分でもある程度本を読んできました。 仕事の話は下記の記事で書きましたが、自分で読んだ本については書いていないのでこの ...

-Python

Copyright© さとぶろぐ , 2021 All Rights Reserved Powered by AFFINGER5.