Tutoriel : Créer un visuel Power BI optimisé pour R

En tant que développeur, vous pouvez créer vos propres visuels Power BI. Ces visuels peuvent être utilisés par vous, votre organisation ou des tiers.

Cet article est un guide pas à pas permettant de créer un visuel alimenté par R pour Power BI.

Dans ce tutoriel, vous allez découvrir comment :

  • Créer un visuel optimisé pour R
  • Modifier le script R dans Power BI Desktop
  • Ajouter des bibliothèques au fichier de dépendances du visuel
  • Ajouter une propriété statique

Prérequis

Bien démarrer

  1. Préparez des exemples de données pour le visuel. Vous pouvez enregistrer ces valeurs dans une base de données Excel ou un fichier .csv, et les importer dans Power BI Desktop.

    MonthNo Nombre total d’unités
    1 2303
    2 2319
    3 1732
    4 1615
    5 1427
    6 2253
    7 1147
    8 1515
    9 2516
    10 3131
    11 3170
    12 2762
  2. Pour créer un visuel, ouvrez PowerShell ou Terminal, puis exécutez la commande suivante :

    pbiviz new rVisualSample -t rvisual
    

    Cette commande crée un dossier pour le visuel rVisualSample. La structure est basée sur le modèle rvisual. Elle crée un fichier appelé script.r dans le dossier racine du visuel. Ce fichier contient le script R qui est exécuté pour générer l’image lors du rendu du visuel. Vous pouvez créer votre script R dans Power BI Desktop.

  3. À partir du répertoire rVisualSample nouvellement créé, exécutez la commande suivante :

    pbiviz start
    
  4. Dans Power BI Desktop, sélectionnez Élément visuel de script R :

    Screenshot of the R script visual control in the Power BI Desktop.

  5. Affectez des données au visuel de développeur en faisant glisser NoMois et Nombre total d’unités vers les Valeurs pour le visuel.

    Screenshot showing where to add data to values.

  6. Définissez le type d’agrégation de Nombre total d’unités sur Ne pas totaliser.

    Screenshot of menu with option for not summarizing data.

  7. Dans l’éditeur de script R de votre instance de Power BI Desktop, tapez ce qui suit :

    plot(dataset)
    

    Cette commande crée un graphique à nuages de points en utilisant les valeurs du modèle sémantique comme entrée.

  8. Sélectionnez l’icône Exécuter le script pour afficher le résultat.

    Screenshot of R visual chart with data.

Modifier le script R

Le script R peut être modifié pour créer d’autres types de visuels. Créons à présent un graphique en courbes.

  1. Collez le code R suivant dans l’éditeur de script 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. Sélectionnez l’icône Exécuter le script pour afficher le résultat.

    Screenshot of the result of running the script, which is a line plot.

  3. Quand votre script R est prêt, copiez-le dans le fichier script.r situé dans le répertoire racine de votre projet de visuel.

  4. Dans le fichier capabilities.json, définissez dataRoles: name sur dataset, puis définissez l’entrée dataViewMappings sur dataset.

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. Ajoutez le code suivant pour prendre en charge le redimensionnement de l’image dans le fichier 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";
      }
    

Ajouter des bibliothèques au package du visuel

Le package corrplot crée une représentation graphique d’une matrice de corrélation. Pour plus d’informations sur corrplot, consultez Présentation du package corrplot.

  1. Ajoutez la dépendance de bibliothèque corrplot au fichier dependencies.json. Voici un exemple de contenu de fichier :

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. Vous pouvez maintenant commencer à utiliser le package corrplot dans votre fichier script.r.

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

    Le résultat de l’utilisation du package corrplot ressemble à l’exemple suivant :

    Screenshot of the visualization pane with four ovals created by corrplot.

Ajouter une propriété statique au volet des propriétés

Maintenant que nous disposons d’un visuel corrplot de base, ajoutons, dans le volet des propriétés, des propriétés qui permettent à l’utilisateur de changer l’apparence du visuel.

Nous utilisons l’argument method pour configurer la forme des points de données. Le script par défaut utilise un cercle. Modifiez votre visuel pour permettre à l’utilisateur de choisir entre plusieurs options.

  1. Définissez un object appelé settings dans le fichier capabilities.json, puis attribuez-lui les propriétés suivantes.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Ouvrez le fichier src/settings.ts. Créez une classe VisualCardSettingsavec les propriétés publiques method, name, displayName et slices, comme indiqué dans la zone de code ci-dessous.

    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];
    }
    

    Après ces étapes, vous pouvez modifier la propriété du visuel.

    Screenshot of R visual settings.

    Enfin, le script R doit avoir une propriété par défaut. Si l’utilisateur ne change pas la valeur de la propriété (dans le cas présent, le paramètre de forme), le visuel utilise cette valeur.

    Pour les variables de runtime R pour les propriétés, la convention d’affectation de noms est <objectname>_<propertyname>, à savoir settings_method dans le cas présent.

  3. Exécutez le script R suivant :

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

Empaqueter et importer votre visuel

Vous pouvez maintenant empaqueter le visuel et l’importer dans n’importe quel rapport Power BI.

  1. Renseignez displayName, supportUrl, description, le nom (name) et l’adresse e-mail (email) de l’auteur, ainsi que toute autre information importante dans le fichier pbivis.json.

  2. Si vous voulez changer l’icône du visuel dans le volet de visualisation, remplacez le fichier icon.png situé dans le dossier assets.

  3. À partir du répertoire racine de votre visuel, exécutez :

    pbiviz package
    

    Pour plus d’informations sur l’empaquetage de votre visuel, consultez Empaquetage du visuel personnalisé

  4. Importez le fichier pbiviz du visuel dans un rapport Power BI. Pour obtenir des instructions sur la procédure à suivre, consultez Importer un fichier de visuel de votre ordinateur local vers Power BI.

  5. Votre visualisation finale ressemble à l’exemple suivant :

Screenshot of R visual settings with changed value.