Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Japan Data Platform Tech Sales Team
大塚
Power BI では組み込みのビジュアルを使用してデータの可視化を簡単に行えるのが一つの利点ですが、 「カスタム ビジュアル」 という機能で簡単にサードパーティ(Microsoft 製含む)のビジュアルや独自のビジュアルを作成、組み込むことが可能です。 この機能によりビジュアル「だけ」作成することはもちろん、R のプロット機能、または R + Plotly のプロット機能を使ったオリジナルの 「アナリティクス+ビジュアル」 を作成して使用することも可能になります。
1. R と Plotly
R とは、主にターミナル画面で実行する記述統計、予測分析、機械学習を行うための言語環境です。R の大きな特徴として、パッケージと呼ばれる命令セットの中に上記のような統計、機械学習機能の他に、データや予測結果データの可視化を行う 「plot」(本体に付属)や「ggplot2」(ggplot)と呼ばれる可視化パッケージがあります。plot も ggplot も Power BI の「R スクリプト ビジュアル」から直接実行することができ、Power BI のフィルタやスケールの機能にも対応します。が、非常に複雑な書式が要求されるうえ、静的な可視化のみ対応する(png形式で出力されます)ため、グラフ内でのデータ絞り込みやグラフ上にマウスをホバーした際の値の取得のようなインタラクティブな機能や、グラフの一部を拡大するなどの可視化支援機能は利用できません。
その点「Plotly」という可視化ライブラリでは、非常に単純な書式で複雑なグラフを作成することが可能です。またライブラリのみでインタラクティブ機能、リアルタイム描画機能が利用できるため、ユーザーの様々な要求に応えることが可能です。
Rについての日本語での解説は こちら のページをご覧ください。このページは R の黎明期から利用されている有志による日本語解説サイトです。また Plotly については こちら のページに詳細が説明されています。
2.カスタム ビジュアル作成の流れ
カスタムビジュアルは以下の流れで作成します。
- 事前準備
Power BI のカスタムビジュアルを作成する上で必要になるツール類のインストールを行います。 - カスタム ビジュアル プロジェクトの作成
pbiviz というツールを使って「カスタム ビジュアル プロジェクト」というファイルセットを作成します。 - カスタム ビジュアル の作成
実際にカスタム ビジュアルを作成します。R、Plotly でのスクリプトを記述後、Power BI Service でテストを行い、必要に応じてパッケージの作成、インストールを行います。
一度環境を作成してしまえば、以下の流れで簡単に新しいカスタム ビジュアルを作成することが可能です。
- pbibiz new でのプロジェクトの作成
- R 及び Plotly によるコードの記述
- pbiviz start によるビジュアル サーバーの起動
- Power BI Service でのテスト実施
- pbiviz package によるパッケージ作成
- パッケージのインストール
3.カスタムビジュアルの作成例
Power BI Desktop での R + Plotly のビジュアル作成例です。
また Power BI Service 上でもこのようなビジュアルが利用できるようになります。
4.実際の作成方法について
いかがでしたか?デフォルトの Power BI でもかなりの表現は可能ですが、R と Plotly を使うことで更に可視化の表現が広がるかと思います。ここではスペースの都合でカスタム ビジュアルの作成方法の詳細は掲載できませんでしたが、以下の Github 上に実際の手順とサンプルスクリプトを用意しております。ご興味ありましたら是非チャレンジしてみてください!
R + Plotly によるカスタム ビジュアル作成方法
https://github.com/c-nova/pbipltly
カスタム ビジュアルそのものをもっと知りたい方は、以下の Qiita の連載記事も非常に参考になります。こちらも併せてご参照ください。特に capability.json の詳細などを日本語化して説明されているので、理解が深まるかと思います。