【NDBデータのダッシュボード】Pythonの可視化ライブラリDashと活用事例

この記事を書いた人
北爪 聖也

株式会社pipon代表取締役。 キャリアはADK(広告代理店)でテレビ広告運用をして残業120時間するが、ネット広告では自分の業務がAIで自動化されていることに驚愕する。そこで、機械学習受託会社に転職し、技術力を身につけた後、piponを創業。現在、製薬業界、大手監査法人、EC業界、様々な業界でAI受託開発事業を運営。

はじめに

今回は、Pythonの可視化ライブラリDashを見ていきます。DashとはFlask、Plotly.js、React.jsをベースに作成されたPythonのWebアプリケーションフレームワークで、Plotlyを使ってデータの可視化をWeb上で実現できます。

近年多くのユーザーから高い評価を得ているフレームワークで、BASF、CISCO、TESLAといった、著名な企業でも採用されています。

データを分析するには、まずデータを可視化することが基本ですので、データ解析の第一歩に有効なツールです。場合によっては、データを可視化するだけで、問題が解決してしまうこともあります。

Dashをうまく活用して、問題解決につなげてください。

Dashとは

1) Dashの概要

Dashは、カナダのモントリオールに本社を置くPlotly社が開発したWebアプリケーションフレームワークで、データ可視化ライブラリPlotlyをデフォルトで組み込んでいる、データの可視化に強いオープンソースソフトウェアです。初版は2017年にリリースされています。

ウェブアプリケーション化が容易で、洗練されたグラフを簡単に作れる点が、重宝されています。

また、Dashはオープンソースソフトウェアということもあり、リーズナブルな価格で使用できます。例えば、基本的な機能に限定された無料版や、年間5万米ドルから利用できるクラウド版などがあります。

2) Dashの特徴

Dashには以下のような強みがあります。

①データ分析に有力なツール

Dashは、機械学習、自然言語処理、予測など、高度な分析を実行するアプリとダッシュボードをユーザーに提供してくれます。DashはPlotlyで作成したグラフとの連携に特化したフレームワークのため、Plotlyで作成したグラフを、簡単にアプリケーションに埋め込むことができるので、データの分析や可視化で大きな強みを発揮します。また、Python以外にも、データ分析でよく使われるR言語やJuliaにも対応しており、いずれの言語でも、インタラクティブで操作性の高いグラフを簡単に記述することが可能であることが大きな魅力です。そして、グラフのデザインが洗練されており、統計解析や機械学習を目的としたこれらの言語を扱うデータサイエンティストにとっては、有力な可視化ツールと言えます。ブラウザ上でグラフを滑らかに動かすことができるので、データを詳しく見るのにも便利なツールと言えます。

②低コストでの運用が可能

従来の他社品は、シートごとのライセンスソフトウェアであることが多いですが、それをDashのエンドユーザー無制限モデルに移行することにより、コスト削減が可能です。個人での利用であれば無料で使うことができます。

③プログラミングが容易

コードの記述が簡単なので、専門のITチームなしでもDashの記述、デプロイ、更新が可能です。したがって、より迅速な活動につなげることができます。DashのベースとなるPlotlyは、以前は入力するデータの加工が面倒でしたが、Plotly Expressという高レベルのAPIができたので、プログラミングが容易になりました。

⑤Pythonのみでアプリケーションを作成できる

しっかりしたWebアプリケーションを作成するためには、CSS、HTML、JavaScriptなど、さまざまな言語に精通している必要があるため、ノンプログラマーにとってはかなりハードルが高くなります。しかし、Dashは初めから画面側を制御するいろいろなライブラリを組み込んでいるため、アプリケーションの作成は、Pythonのみで作ることができます。これは、ノンプログラマーにとって非常に助かる仕様と言えるでしょう。

⑥信頼性が高くトラブルフリーでの運用が可能

高可用性(サービス提供が出来なくなる事態の発生頻度が低いこと)の性質を有しており、業務の遂行に必要不可欠なアプリケーションとして活用できます。可用性とは、システムが継続して稼働できる度合いや能力のことですが、Dashは可用性が高いため信頼のおけるアプリケーションを作ることができます。

3) Dashの活用事例

我々は、Dashを使ってダッシュボードを公開していますので、活用事例として紹介します(図1)。

図1. Dashの活用事例

これは、NDBデータ(医療機関での保険診療や検診の記録が保管されているデータベース)をダッシュボード化したもので、さまざまな医薬品の処方量を都道府県別に棒グラフで表せるようにしたものです。年度、薬効分類名称、医薬品名をリストから選択するのみで、簡単に棒グラフを表示してくれます。数値の羅列を見るだけでは全体を把握しにくいですが、グラフ化することで傾向を掴むことができます。

NDBデータについての解説はこちらの記事に詳細があります。

拡大したい場合は、グラフ上で希望する範囲をドラッグするだけで済みます(図2)。前述の通り、インタラクティブで操作性の高い点が、Dashの強みです。

図2. グラフの拡大例

この事例は棒グラフの例ですが、他にも折れ線グラフ、散布図、3Dグラフなど、さまざまなグラフを作成できます。

単にグラフを表示するだけでなく、グラフをpng形式でダウンロードする、マウスをグラフ上でホバーすることにより数値を表示するといったことも可能です。触ってみるとお分かりいただけると思いますが、これらの操作はすべてブラウザ上で完結しています。データ解析にあたっては、まずグラフで可視化するのがセオリーですが、Dashを活用することでデータを詳しく見たり、複数のメンバーで共有したりといった使い方ができます。

おわりに

今回は、データの可視化に強みを持つDashを紹介しました。Dashはビッグデータの時代に適合した、高い可視化能力を持つWebアプリケーションアプリケーションフレームワークであるにも関わらず、オープンソースのため、小規模なプロジェクトであれば、手ごろな料金で導入できます。

インタラクティブかつ操作性の高さはとても魅力的なので、可視化ツールの導入を検討されている方は、Dashを候補の一つとしてみるのは、いかがでしょうか。

参考サイト

Dash User Guide

https://dash.plotly.com/

Pythonの可視化ライブラリDashを使う

https://qiita.com/OgawaHideyuki/items/6df65fbbc688f52eb82c

可視化ツールDashのチュートリアル

https://qiita.com/OgawaHideyuki/items/6df65fbbc688f52eb82c

NDBデータ

https://secret-lake-87127.herokuapp.com/