{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Pythonによるインタラクティブ可視化入門\n", "\n", "- [みんなのPython勉強会#61](https://startpython.connpass.com/event/186016/)\n", "- 2020-09-10\n", "- driller[@patraqushe](https://twitter.com/patraqushe)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### 誰?\n", "\n", "- [どりらん](https://twitter.com/patraqushe)\n", "- [fin-py](https://fin-py.connpass.com)\n", "- ぼっち会社経営\n", " - 在宅勤務歴10年\n", " - 非エンジニア" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### fin-py\n", "\n", "Python × 金融のコミュニティ\n", "\n", "![](https://github.com/fin-py/logo/blob/master/finpy_200x200.png?raw=true)\n", "\n", "#### [fin-pyもくもく会 #36](https://fin-py.connpass.com/event/186842/)\n", "\n", "https://fin-py.connpass.com/event/186842/\n", "\n", "- オンライン(Discord)のもくもく会\n", "- 2020/09/12(土) 10:00 〜 13:00\n", "- 特別企画あり" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Pythonによる株価分析ハンズオン\n", "\n", "https://quantopian-tokyo.connpass.com/event/187549/\n", "\n", "- オンライン(Google Meet)のハンズオン\n", "- 2020/09/20(日) 13:00 〜 17:00\n", "- Python, Numpy, pandasの基礎から統計の基礎まで\n", "\n", "![](https://connpass-tokyo.s3.amazonaws.com/thumbs/76/2a/762a8192223aeb6d410c21669324b1c5.png)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Software Design 2020年10月号に寄稿しました\n", "\n", "- 第1特集 コードで実践,ビジュアルで納得 Pythonではじめる統計学\n", "- Pythonの基礎文法は知ってるけど統計を一から学びたい人にオススメ\n", "\n", "[![](https://gihyo.jp/assets/images/cover/2020/thumb/TH160_642010.jpg)](https://gihyo.jp/magazine/SD/archive/2020/202010)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### バックナンバーもよろしくネ\n", "\n", "2018年2月号|SD別冊シリーズ|2019年4月号|2020年2月号\n", "---|---|---|---\n", "[![](https://gihyo.jp/assets/images/cover/2018/thumb/TH160_641802.jpg)](https://gihyo.jp/magazine/SD/archive/2018/201802)|[![](https://gihyo.jp/assets/images/cover/2019/thumb/TH160_9784297103965.jpg)](https://gihyo.jp/book/2019/978-4-297-10396-5)|[![](https://gihyo.jp/assets/images/cover/2019/thumb/TH160_641904.jpg)](https://gihyo.jp/magazine/SD/archive/2019/201904)|[![](https://gihyo.jp/assets/images/cover/2020/thumb/TH160_642002.jpg)](https://gihyo.jp/magazine/SD/archive/2020/202002)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Pythonの可視化ライブラリ\n", "\n", "![Python Visualization Landscape](https://github.com/rougier/python-visualization-landscape/raw/master/landscape-colors.png)\n", "\n", "> [Python Visualization Landscape](https://github.com/rougier/python-visualization-landscape) より引用" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### 大きくわけて2つに分類される\n", "\n", "- 静的画像による描画\n", " - Matplotlib\n", " - seaborn\n", "- 動的な描画(JavaScriptなど)\n", " - Bokeh\n", " - plotly" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### gapminderデータセット\n", "\n", "https://www.gapminder.org/\n", "\n", "列名|説明\n", "---|---\n", "country|国名\n", "continent|大陸名\n", "year|年度\n", "lifeExp|寿命\n", "pop|人口\n", "gdpPercap|人口当りGDP" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "hideCode": false, "hidePrompt": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countrycontinentyearlifeExppopgdpPercapiso_alphaiso_num
0AfghanistanAsia195228.8018425333779.445314AFG4
1AfghanistanAsia195730.3329240934820.853030AFG4
2AfghanistanAsia196231.99710267083853.100710AFG4
3AfghanistanAsia196734.02011537966836.197138AFG4
4AfghanistanAsia197236.08813079460739.981106AFG4
\n", "
" ], "text/plain": [ " country continent year lifeExp pop gdpPercap iso_alpha \\\n", "0 Afghanistan Asia 1952 28.801 8425333 779.445314 AFG \n", "1 Afghanistan Asia 1957 30.332 9240934 820.853030 AFG \n", "2 Afghanistan Asia 1962 31.997 10267083 853.100710 AFG \n", "3 Afghanistan Asia 1967 34.020 11537966 836.197138 AFG \n", "4 Afghanistan Asia 1972 36.088 13079460 739.981106 AFG \n", "\n", " iso_num \n", "0 4 \n", "1 4 \n", "2 4 \n", "3 4 \n", "4 4 " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import plotly.express as px\n", "\n", "gapminder = px.data.gapminder()\n", "gapminder.head()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### pandas(Matplotlib)からの散布図" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hideCode": false, "hidePrompt": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "gapminder.plot.scatter(x=\"gdpPercap\", y=\"lifeExp\", logx=True, xlim=[100, 1e6])" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### 課題\n", "\n", "- 国や地域ごとの傾向をつかめない\n", " - 日本のデータどれ?\n", "- 要素の特定ができない\n", " - この点はどこの国?いつの時点?\n", "- 具体的な値がわからない\n", "- 特定の要素を時系列で把握したい\n", " - 要素の内容を別な観点(折れ線グラフ)でみたい" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### インタラクティブな可視化で解決\n", "\n", "- 探索的\n", "- 対話的\n", "- イベントによる変化(コールバック)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### 従来のインタラクティブな可視化\n", "\n", "- フロントエンドの知識が必要\n", " - UI\n", " - デザイン\n", " - JavaScript\n", " - [D3.js](https://d3js.org)\n", " - [Chart.js](https://www.chartjs.org)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Pythonやデータ処理とは全く違った分野の学習コストが発生\n", "\n", "![](https://regeld.xsrv.jp/desi/wp-content/uploads/2018/11/confusion-180x157.png)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Plotlyによるインタラクティブな可視化\n", "\n", "- plotly.py\n", "- Plotly Express\n", "\n", "![](https://regeld.xsrv.jp/desi/wp-content/uploads/2018/10/recommend-180x154.png)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Pythonだけでできる!\n", "\n", "![](https://regeld.xsrv.jp/desi/wp-content/uploads/2019/04/friend_Illustration_3-180x78.png)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### plotly.py\n", "\n", "- JavaScriptベースの可視化ツール\n", " - plotly.jsの機能がPythonから使える\n", " - [d3.js](https://d3js.org/)および[stack.gl](https://github.com/stackgl)を利用\n", "- 広範囲な用途に対応したグラフを描画\n", " - 統計、財務、地理、科学など\n", " - 40種類以上のグラフをサポート\n", "- Jupyter上にグラフを描画できる" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Plotly Express\n", "\n", "- plotly.pyの高水準のラッパ\n", "- 簡潔なコードでデータを可視化\n", "- seabornと同様に統計的な前処理を自動で行う" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### ホバーツール\n", "\n", "探索的な可視化が行える\n", "\n", "- 座標の情報\n", "- 要素の情報\n", "- カスタマイズした情報(書式設定など)\n", "\n", "![](https://regeld.xsrv.jp/desi/wp-content/uploads/2018/09/search-180x147.png)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Plotly Expressによる散布図" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "