[Power BI] カスタム ビジュアルの作成方法 R + Plotly 編

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 でテストを行い、必要に応じてパッケージの作成、インストールを行います。

 

一度環境を作成してしまえば、以下の流れで簡単に新しいカスタム ビジュアルを作成することが可能です。

  1. pbibiz new でのプロジェクトの作成
  2. R 及び Plotly によるコードの記述
  3. pbiviz start によるビジュアル サーバーの起動
  4. Power BI Service でのテスト実施
  5. pbiviz package によるパッケージ作成
  6. パッケージのインストール

3.カスタムビジュアルの作成例

Power BI Desktop での R + Plotly のビジュアル作成例です。

CaptureSample

また Power BI Service 上でもこのようなビジュアルが利用できるようになります。

CaptureSampleService


4.実際の作成方法について

いかがでしたか?デフォルトの Power BI でもかなりの表現は可能ですが、R と Plotly を使うことで更に可視化の表現が広がるかと思います。ここではスペースの都合でカスタム ビジュアルの作成方法の詳細は掲載できませんでしたが、以下の Github 上に実際の手順とサンプルスクリプトを用意しております。ご興味ありましたら是非チャレンジしてみてください!

R + Plotly によるカスタム ビジュアル作成方法

https://github.com/c-nova/pbipltly

カスタム ビジュアルそのものをもっと知りたい方は、以下の Qiita の連載記事も非常に参考になります。こちらも併せてご参照ください。特に capability.json の詳細などを日本語化して説明されているので、理解が深まるかと思います。

Power BI カスタムビジュアル開発

https://qiita.com/kenakamu/items/f57ab7f73d6ea10bc9d9