LoginSignup
13
23

More than 3 years have passed since last update.

【実践編/解説動画📺あり】集計からダッシュボードの作成まで一本化!PythonとDashによるデータ可視化アプリ開発

Last updated at Posted at 2020-11-19

本記事は、2020年10月23日に作成されました。

はじめに

マーケティングリサーチプラットフォームを提供している、株式会社マーケティングアプリケーションズ(MApps)です。

弊社では、Dashに関した内容を、基礎編、Tips編、実践編の3つに分けてQiitaで投稿していきます。

基礎編
Dashの概要、環境構築、サンプルを実行してグラフを可視化する方法を紹介します。
記事はこちら

Tips編
バブルチャート、複合グラフ、帯グラフ、レーダーチャートなど様々なグラフの可視化や、グラフをより見やすく、かつわかりやすくするための応用的な手法を紹介します。
記事はこちら

実践編(本記事)
本麒麟のヒット分析を行うにあたり、Dashを用いてどのようにダッシュボードを作成したか、Tips編の内容を組み合わせた実践的な手法を紹介します。

読んで良かった、参考になったという方は、ぜひLGTMボタンを押してください。👍👍👍

アプリの紹介と実践編について

弊社では、こうしたアプリを作成しました。👇
dash_practice_python_movie.gif

実践編では、アプリを作成した際に用いたコードの一部を紹介しております。
一番最後に紹介しているソースコードに全てのコードが載っております。

解説動画もあります!(むしろ動画がメインです)

この記事はYouTubeにアップした解説動画📺との連動記事です。
動画がメインになっており、私が伝えたい内容を動画内で説明しています。👀
こちらの記事は動画の中で話している内容を、箇条書きしたものとなっております。

内容をしっかり理解するためにも、ぜひ動画と合わせてQiitaの記事もご参照ください。

今回の例

今回は、バブルチャートの作成方法を例に説明していきます
スクリーンショット 2020-11-18 16.25.50.png

Jupyter Notebookで集計をする、関数を作る

動画はこちら👀

  • 関数とは?モジュールとは?
  • Anaconda Navigatorを立ち上げる
  • Anaconda Navigatorで仮想環境「dash」を立ち上げる
  • Jupyter Notebookを立ち上げる
  • 必要なデータとノートブックを用意する
  • ノートブックのセル内に集計用の関数を1つ1つ用意する  (今回の場合、バブルチャートのX軸、Y軸、バブルサイズ、ラベル用のテキスト、それらの関数をまとめる関数を作成)

関数の作り方にも礼儀あり?良くない例を見てみよう

【コメント】
※動画内では、関数化した状態で説明をしています。集計を行った後に関数を作るようにしてください。
また集計を行う際は、違うツールで同じ集計方法を使って値の確認を行って、同じ値になることまで確認した方が良いでしょう。

例)バブルチャートだとクロス集計を行ったが、エクセルでも同じようにクロス集計を行って値を確認する

モジュールを作る

動画はこちら👀

  • ディレクトリを用意する
  • 必要なデータを用意する
  • アプリを表示させるためのファイル「app.py」と関数をまとめたファイル(モジュール)「data_processing.py」を用意する
  • data_processing.pyを開いて、中身を見てみよう

【コメント】
「app.py」ではまず最初に必要とするグラフのコードを入れておいて準備をしておきます。
次に「data_processing.py」のファイルを作成します。
「data_processing.py」にJupyter Notebookで値の確認が終わって正常に動くことが確認できた関数をコピペします。

モジュールを読み込ませて使う

動画はこちら👀

  • 「app.py」を開く
  • importで「data_processing.py」を読み込み
  • 作成した関数から、それぞれ値を呼び出してそれぞれの変数に代入する
  • 作成した変数を、今後はグラフを作成するために使用する

go.Scatterは散布図を作成する
go.ScatterのxはX軸を作成するので、X軸の値が入った変数x_axis_listを代入、yはY軸を作成するので、Y軸の値が入った変数y_axis_listを代入

app.py
x_axis_list = dp.gender_age_bubble_chart()['x_axis_list']
y_axis_list = dp.gender_age_bubble_chart()['y_axis_list']
bubble_size_list = dp.gender_age_bubble_chart()['bubble_size_list']
text_list = dp.gender_age_bubble_chart()['text_list']

gender_and_age_distribution = go.Figure()

gender_and_age_distribution_data = go.Scatter(
    x=x_axis_list, y=y_axis_list,
)
  • ローカルサーバーを起動して、アプリを表示する

アプリを表示して、グラフを見てみよう

- 全ての工程が終わり、表示されていることを確認する
- 動画内でバブルチャートの説明を行っています

解説動画の紹介(再掲)

いかがだったでしょうか?
ここで再度、解説動画の紹介です。
冒頭でもお伝えしましたが、動画がメインで、この記事はオマケです!
内容をしっかり理解するためにも、ぜひ動画と本記事をご活用ください

ソースコードはこちら

ソースコードはこちら

まとめ

弊社でDashの解説をシリーズ化してお送りしましたが、いかがでしたでしょうか?
自作ダッシュボードをPythonで作る際の助けとなる情報になりましたら、幸いです!

13
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
23