次の方法で共有


チュートリアル: R を利用した Power BI ビジュアルを作成する

開発者は、独自の Power BI ビジュアルを作成できます。 これらのビジュアルは、ユーザー、組織、またはサード パーティが使用できます。

この記事は、Power BI 用の R を利用したビジュアルを作成するためのステップ バイ ステップ ガイドです。

このチュートリアルでは、以下の内容を学習します。

  • R を利用したビジュアルを作成する
  • Power BI Desktop で R スクリプトを編集する
  • ビジュアルの依存関係ファイルにライブラリを追加する
  • 静的プロパティを追加する

[前提条件]

概要

  1. ビジュアル用のサンプル データを準備します。 これらの値を Excel データベースまたは .csv ファイルに保存し、 Power BI Desktop にインポートできます。

    月番号 合計ユニット数
    1 2303
    2 2319
    3 1732
    4 1615
    5 1427
    6 2253
    7 1147
    1515
    9 2516
    10 3131
    11 3170
    12 2762
  2. ビジュアルを作成するには、 PowerShell または ターミナルを開き、次のコマンドを実行します。

    pbiviz new rVisualSample -t rvisual
    

    このコマンドは、 rVisualSample ビジュアル用の新しいフォルダーを作成します。 この構造は、 rvisual テンプレートに基づいています。 ビジュアルのルート フォルダーに script.r という名前のファイルが作成されます。 このファイルには、ビジュアルのレンダリング時にイメージを生成するために実行される R スクリプトが保持されます。 Power BI Desktop で R スクリプトを作成できます。

  3. 新しく作成した rVisualSample ディレクトリから、次のコマンドを実行します。

    pbiviz start
    
  4. Power BI Desktop で、R スクリプト ビジュアルを選択します。

    Power BI Desktop の R スクリプト ビジュアル コントロールのスクリーンショット。

  5. Values の開発者ビジュアルにデータを割り当てるには、MonthNoTotal units をドラッグします。

    値にデータを追加する場所を示すスクリーンショット。

  6. [合計ユニット数] の集計の種類を [集計しない] に設定します。

    データを集計しないオプションを含むメニューのスクリーンショット。

  7. Power BI Desktop の R スクリプト エディターで、次のように入力します。

    plot(dataset)
    

    このコマンドは、セマンティック モデルの値を入力として使用して散布図を作成します。

  8. [ スクリプトの実行 ] アイコンを選択して結果を表示します。

    データを含む R ビジュアル グラフのスクリーンショット。

R スクリプトを編集する

R スクリプトは、他の種類のビジュアルを作成するように変更できます。 次に折れ線グラフを作成しましょう。

  1. 次の R コードを R スクリプト エディターに貼り付けます。

    x <- dataset[,1] # get the first column from semantic model
    y <- dataset[,2] # get the second column from semantic model
    
    columnNames = colnames(dataset) # get column names
    
    plot(x, y, type="n", xlab=columnNames[1], ylab=columnNames[2]) # draw empty plot with axis and labels only
    lines(x, y, col="green") # draw line plot
    
  2. [ スクリプトの実行 ] アイコンを選択して結果を表示します。

    ライン プロットであるスクリプトを実行した結果のスクリーンショット。

  3. R スクリプトの準備ができたら、ビジュアル プロジェクトのルート ディレクトリにある script.r ファイルにコピーします。

  4. capabilities.json ファイルで、dataRoles: nameデータセットに変更し、dataViewMappings入力をデータセットに設定します

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. src/visual.ts ファイル内のイメージのサイズ変更をサポートする次のコードを追加します。

      public onResizing(finalViewport: IViewport): void {
          this.imageDiv.style.height = finalViewport.height + "px";
          this.imageDiv.style.width = finalViewport.width + "px";
          this.imageElement.style.height = finalViewport.height + "px";
          this.imageElement.style.width = finalViewport.width + "px";
      }
    

ビジュアル パッケージにライブラリを追加する

corrplot パッケージは、相関行列のグラフィカルな表示を作成します。 corrplotの詳細については、「corrplot パッケージの概要」を参照してください。

  1. corrplot ライブラリの依存関係をdependencies.json ファイルに追加します。 ファイルの内容の例を次に示します。

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. これで、 script.r ファイルで corrplot パッケージの使用を開始できます。

    library(corrplot)
    corr <- cor(dataset)
    corrplot(corr, method="circle", order = "hclust")
    

    corrplot パッケージを使用した結果は、次の例のようになります。

    corrplot によって作成された 4 つの楕円を含む視覚化ペインのスクリーンショット。

プロパティ ウィンドウに静的プロパティを追加する

基本的な corrplot ビジュアルが作成されたので、ユーザーが外観をビジュアルに変更できるようにするプロパティ ウィンドウにプロパティを追加しましょう。

method引数を使用して、データ ポイントの形状を構成します。 既定のスクリプトでは円が使用されます。 ビジュアルを変更して、ユーザーが複数のオプションから選択できるようにします。

  1. capabilities.jsonファイルでobjectと呼ばれるを定義し、次のプロパティを指定します。

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. src/settings.ts ファイルを開きます。 次のコード ボックスに示すように、パブリック プロパティVisualCardSettingsmethodnamedisplayNameを含むslices クラスを作成します。

    import ItemDropdown = formattingSettings.ItemDropdown;
    
    const methodOptions = [
        {
            displayName: "Circle",
            value: "circle"
        },
        {
            displayName: "Square",
            value: "square"
        },
        {
            displayName: "Ellipse",
            value: "ellipse"
        },
        {
            displayName: "Number",
            value: "number"
        },
        {
            displayName: "Shade",
            value: "shade"
        },
        {
            displayName: "Color",
            value: "color"
        },
        {
            displayName: "Pie",
            value: "pie"
        }
    ]
    
    class VisualCardSettings extends FormattingSettingsCard {
        method: FormattingSettingsSlice = new ItemDropdown({
            name: "method",
            displayName: "Method",
            items: methodOptions,
            value: methodOptions[0]
        });
    
        name: string = "settings";
        displayName: string = "Settings";
        slices: Array<FormattingSettingsSlice> = [this.method];
    }
    

    これらの手順の後で、ビジュアルのプロパティを変更できます。

    R ビジュアル設定のスクリーンショット。

    最後に、R スクリプトには既定のプロパティが必要です。 ユーザーがプロパティ値 (この場合は図形の設定) を変更しない場合、ビジュアルはこの値を使用します。

    プロパティの R ランタイム変数の場合、名前付け規則は<objectname>_<propertyname>settings_method

  3. 次の R スクリプトを実行します。

    library(corrplot)
    corr <- cor(dataset)
    
    if (!exists("settings_method"))
    {
        settings_method = "circle";
    }
    
    corrplot(corr, method=settings_method, order = "hclust")
    

ビジュアルをパッケージ化してインポートする

これで、ビジュアルをパッケージ化し、任意の Power BI レポートにインポートできます。

  1. displayNamesupportUrldescription、作成者のnameemail、およびpbivis.json ファイル内のその他の重要な情報を入力します。

  2. 視覚化ウィンドウでビジュアルのアイコンを変更する場合は、assets フォルダー内の icon.png ファイルを置き換えます。

  3. ビジュアル実行のルート ディレクトリから:

    pbiviz package
    

    ビジュアルのパッケージ化の詳細については、「カスタム ビジュアルのパッケージ化」を参照してください。

  4. ビジュアルの pbiviz ファイルを任意の Power BI レポートにインポートします。 これを行う方法については、「 ローカル コンピューターから Power BI にビジュアル ファイルをインポート する」を参照してください。

  5. 最終的なビジュアルは次の例のようになります。

値が変更された R ビジュアル設定のスクリーンショット。