この記事では、R ビジュアルで R スクリプトを使用してじょうごプロットを作成する方法を順を追って説明します。 それぞれの一連の手順で、ソース ファイルをダウンロードできます。
この記事では、次の方法について説明します。
- RStudio の R スクリプト
- Power BI の R ビジュアル
- Power BI での "PNG ベースの"、R を利用したビジュアル
- Power BI での "HTML ベースの"、R を利用したビジュアル
じょうごプロットを使用すると、予想されるバリエーションの量を簡単に使用、解釈、および表示することができます。 じょうご は、信頼制限を使用して形成され、外れ値はじょうごの外側にドットとして表示されます。
この例では、じょうごプロットを使用して、さまざまなセットのデータを比較および分析します。
前提条件
Microsoft Fabric サブスクリプションを取得します。 または、無料の Microsoft Fabric 試用版にサインアップします。
セマンティック モデルを使って R スクリプトを作成する
最小の R スクリプト とそのデータテーブル (dataset.csv) をダウンロードします。
次に、スクリプトの編集を行って、こちらのスクリプトをミラーリングします。 これにより、入力エラー処理とユーザー パラメーターが追加され、プロットの外観を制御できます。
レポートを作成する
次に、スクリプトの編集を行って、こちらのスクリプトをミラーリングします。 これにより、read.csv ではなく dataset.csv が Power BI デスクトップ ワークスペースに読み込まれ、がん死亡率テーブルが作成されます。 次の PBIX ファイルの結果を確認してください。
注意
dataset
は、任意の R ビジュアルの入力 data.frame
に対してハードコーディングされた名前です。
R コードで R を利用したビジュアルとパッケージを作成する
次のコマンドを実行して、R を利用した新しいビジュアルを作成します。
pbiviz new funnel-visual -t rvisual cd funnel-visual npm install pbiviz package
このコマンドによって、初期テンプレート ビジュアル (
-t
はテンプレートに対応する) を含むフォルダー funnel-visual が作成されます。 PBIVIZ は dist フォルダー内の script.r ファイルに含まれる R コードです。 それを Power BI にインポートして、何が起こるかを試してみてください。script.r ファイルを編集して、その内容を前のスクリプトに置き換えます。
capabilities.json を編集して、文字列
Values
をdataset
に置き換えます。 これにより、テンプレート内の "ロール" の名前が置き換えられ、R コード内と同様になります。(省略可能)dependencies.json を編集して、R スクリプトで必要とされる各 R パッケージのセクションを追加します。 これにより、ビジュアルが初めて読み込まれる場合に、これらのパッケージを自動的にインポートするように Power BI に指示が出されます。
pbiviz package
コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。
R ベースのビジュアルの改善
ユーザーは入力テーブル内の列の順序を理解する必要があるため、ビジュアルはまだユーザー フレンドリとは言えません。
入力フィールド
dataset
を次の 3 つのフィールド (ロール) に分割します:Population
、Number
、Tooltips
capabilities.json を編集して、
dataset
ロールを 3 つの新しいロールに置き換えるか、または capabilities.json をダウンロードします。各入力フィールドの名前、種類、ツールヒント、および最大列数が定義されているセクション
dataRoles
およびdataViewMappings
を更新する必要があります。詳細については、機能に関する記事を参照してください。
dataset
ではなく、Population
、Number
、およびTooltips
を入力データフレームとしてサポートするように script.r を編集するか、または script.r をダウンロードします。ヒント
R スクリプト内の変更をたどるには、コメント ブロックを検索します。
#RVIZ_IN_PBI_GUIDE:BEGIN: Added to enable visual fields ... #RVIZ_IN_PBI_GUIDE:END: Added to enable visual fields #RVIZ_IN_PBI_GUIDE:BEGIN: Removed to enable visual fields ... #RVIZ_IN_PBI_GUIDE:BEGIN: Removed to enable visual fields
pbiviz package
コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。
ユーザー パラメーターを追加する
UI からの内部パラメーターを含むビジュアル要素の色とサイズをユーザーが制御できるようにするための機能を追加します。
capabilities.json を編集して、
objects
セクションを更新します。 ここでは、各パラメーターの名前、ツールヒント、および種類を定義すると共に、パラメーターを複数のグループに分割することも決定します (この場合は 3 つのグループ)。capabilities.json をダウンロードします。詳細については、オブジェクトのプロパティに関するページを参照してください。
src/settings.ts の編集を行って、こちらの settings.ts をミラーリングします。 このファイルは TypeScript で記述されています。
ここでは、次に示すコードの 2 つのブロックが追加されていることがわかります。
- プロパティ値を保持する新しいインターフェイスを宣言する
- メンバー プロパティと既定値を定義する
script.r の編集を行って、こちらの script.r をミラーリングします。 これにより、ユーザー パラメーターごとに
if.exists
呼び出しを追加することで、UI のパラメーターのサポートが追加されます。ヒント
R スクリプト内の変更をたどるには、次のコメントを検索します。
#RVIZ_IN_PBI_GUIDE:BEGIN:Added to enable user parameters ... #RVIZ_IN_PBI_GUIDE:END:Added to enable user parameters #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to enable user parameters ... #RVIZ_IN_PBI_GUIDE:END:Removed to enable user parameters
パラメーターを UI に公開しないように決定することもできます。
pbiviz package
コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。
ヒント
ここでは、複数の型 (ブール値、数値、文字列、および色) のパラメーターをすべて一度に追加しました。 シンプルなケースとして、単一パラメーターの追加方法については、こちらの例を参照してください。
ビジュアルを RHTML ベースのビジュアルに変換する
結果として得られるビジュアルは PNG ベースのものであるため、マウス ホバーに応答しない、拡大表示することができないなどの制限があります。そのため、これを HTML ベースのビジュアルに変換する必要があります。 R を利用した空の HTML ベースのビジュアル テンプレートを作成して、PNG ベースのプロジェクトからいくつかのスクリプトをコピーします。
次のコマンドを実行します。
pbiviz new funnel-visual-HTML -t rhtml cd funnel-visual-HTML npm install pbiviz package
capabilities.json を開き、
"scriptOutputType":"html"
行をメモします。dependencies.json を開き、一覧表示されている R パッケージの名前をメモします。
script.r を開き、その構造をメモします。 それは、外部入力が使用されていないため、RStudio で開いて実行することができます。
これにより out.html が作成され、保存されます。 自己完結型 (外部の依存関係なし) であるこのファイルでは、HTML ウィジェット内のグラフィックスが定義されます。
重要
htmlWidgets
ユーザーを対象として、r_files フォルダーには、plotly
オブジェクトまたはwidget
オブジェクトを自己コンテンツ HTML に変換するのに役立つ R ユーティリティが用意されています。R を利用したこのバージョンのビジュアルでは、(以前の種類のビジュアルとは異なって)
source
コマンドもサポートされており、自分のコードを読みやすくすることができます。capabilities.json を前の手順からの capabilities.json に置き換えるか、または capabilities.json をダウンロードします。
必ず次のようにしてください。
"scriptOutputType": "html"
最新バージョンの script.r をテンプレートからの script.r にマージするか、または script.r をダウンロードします。
新しいスクリプトでは、
plotly
パッケージを使用して、ggplot オブジェクトが plotly オブジェクトに変換され、さらにhtmlWidgets
パッケージを使用してそれが HTML ファイルに保存されます。ユーティリティ関数の大部分は r_files/utils.r に移動され、
generateNiceTooltips
関数は、plotly オブジェクトの外観用に追加されます。ヒント
R スクリプト内の変更をたどるには、次のコメントを検索します。
#RVIZ_IN_PBI_GUIDE:BEGIN:Added to create HTML-based ... #RVIZ_IN_PBI_GUIDE:BEGIN:Added to create HTML-based #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to create HTML-based ... #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to create HTML-based
最新バージョンの dependencies.json をテンプレートからの dependencies.json にマージして、新しい R パッケージ依存関係を含めるか、または dependencies.json をダウンロードします。
src/settings.ts を前の手順と同じ方法で編集します。
pbiviz package
コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。
注意
ダウンロードについては、PBIX とソースコードを参照してください。
追加の例を作成する
次のコマンドを実行して、空のプロジェクトを作成します。
pbiviz new example -t rhtml cd example npm install pbiviz package
この ショーケースからコードを取得し、強調表示されている変更を行います。
ご自分のテンプレートの script.r を置き換えて、
pbiviz package
を再度実行します。 これで、Power BI レポートにビジュアルが含まれるようになりました。
ヒントとコツ
pbiviz.json を編集することで、バージョン、電子メール、名前、ライセンスの種類などの正しいメタデータを格納することを開発者にお勧めします。
重要
guid フィールドは、ビジュアルの一意の識別子です。 ビジュアルごとに新しいプロジェクトを作成する場合は、GUID もそれぞれ異なります。 それが同じになるのは、新しいビジュアルに古いプロジェクトをコピーして使用する場合のみとなりますが、これを行うべきではありません。
assets/icon.png を編集して、ビジュアル用の一意のアイコンを作成します。
ご利用の Power BI レポートと同じデータを使用して RStudio で R コードをデバッグするには、R スクリプトの先頭に以下を追加します (
fileRda
変数を編集します)。#DEBUG in RStudio fileRda = "C:/Users/yourUserName/Temp/tempData.Rda" if(file.exists(dirname(fileRda))) { if(Sys.getenv("RSTUDIO")!="") load(file= fileRda) else save(list = ls(all.names = TRUE), file=fileRda) }
これにより、Power BI レポートからの環境が保存され、RStudio に読み込まれます。
GitHub で入手できるコードを使用すれば、R を利用したビジュアルをゼロから開発する必要はありません。 テンプレートとして使用するビジュアルを選択し、そのコードを新しいプロジェクトにコピーすることができます。
たとえば、スプライン カスタム ビジュアルを使用してみてください。
各 R ビジュアルでは、その入力テーブルに
unique
演算子が適用されます。 複数の同一の行が削除されるのを防ぐには、一意の ID を持つ追加の入力フィールドを追加し、R コードでそれを無視することを検討してください。Power BI アカウントを持っている場合は、
pbiviz package
コマンドを使用して再パッケージ化するのではなく、Power BI サービスを使用してビジュアルを即座に開発してください。
HTML ウィジェット ギャラリー
次のビジュアルで使用するために、 HTML ウィジェット ギャラリーでビジュアルを探索します。 作業を簡単にするために、20 を超える対話型の HTML ビジュアを含むビジュアル プロジェクト リポジトリを作成し、その中から選択できるようにしました。
ヒント
html ウィジェットを切り替えるには、 [形式]>[設定]>[型] の順に使用します。 この PBIX ファイルを使用して試してみてください。
ビジュアルに対してサンプルを使用するには
- フォルダー全体をダウンロードします。
- script.r と dependencies.json を編集して、ウィジェットを 1 つだけを保持します。
- capabilities.json と settings.ts を編集して、
Type
セレクターを削除します。 - visual.ts 内で、
const updateHTMLHead: boolean = true;
をfalse
に変更します (パフォーマンス向上のため) - pbiviz.json 内のメタデータを変更します。最も重要なのは
guid
フィールドです。 - 再パッケージ化し、必要に応じて、ビジュアルのカスタマイズを続けます。
注意
このプロジェクトのすべてのウィジェットがサービスでサポートされているわけではありません。
関連するコンテンツ
詳細については、Power BI の円形カード視覚化の開発および R ビジュアルに関する追加の Power BI チュートリアルを参照してください。
Office ストア (ギャラリー) に対してビジュアルを開発して送信する方法を学習します。その他の例については、R スクリプト ショーケースを参照してください