Compartir a través de


Tutorial: Creación de un objeto visual de Power BI con tecnología de R

Como desarrollador, puede crear sus propios objetos visuales de Power BI. Estos objetos visuales pueden ser utilizados por usted, su organización o por terceros.

Este artículo es una guía paso a paso para crear un objeto visual con tecnología R para Power BI.

En este tutorial, aprenderá a:

  • Crea un visual impulsado por R
  • Edición del script de R en Power BI Desktop
  • Agregar bibliotecas al archivo de dependencias del objeto visual
  • Adición de una propiedad estática

Prerrequisitos

Comienza

  1. Prepara algunos datos de ejemplo para la visualización. Puede guardar estos valores en una base de datos de Excel o en un archivo .csv e importarlo en Power BI Desktop.

    NúmeroMes Total de unidades
    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. Para crear un objeto visual, abra PowerShell o Terminal y ejecute el siguiente comando:

    pbiviz new rVisualSample -t rvisual
    

    Este comando crea una nueva carpeta para el objeto visual rVisualSample . La estructura se basa en la rvisual plantilla. Crea un archivo denominado script.r en la carpeta raíz del objeto visual. Este archivo contiene el script de R que se ejecuta para generar la imagen cuando se representa el objeto visual. Puede crear el script de R en Power BI Desktop.

  3. En el directorio recién creado rVisualSample , ejecute el siguiente comando:

    pbiviz start
    
  4. En Power BI Desktop, seleccione Visual de script R:

    Captura de pantalla del control visual de script de R en Power BI Desktop.

  5. Asigne datos al visual del desarrollador arrastrando MonthNo y Total de unidades a Valores del visual.

    Captura de pantalla que muestra dónde agregar datos a los valores.

  6. Establezca el tipo de agregación de Total units en No resumir.

    Captura de pantalla del menú con opción para no resumir los datos.

  7. En el editor de scripts de R en Power BI Desktop, escriba lo siguiente:

    plot(dataset)
    

    Este comando crea un gráfico de dispersión mediante los valores del modelo semántico como entrada.

  8. Seleccione el icono Ejecutar script para ver el resultado.

    Captura de pantalla del gráfico visual de R con datos.

Editar el script de R

El script de R se puede modificar para crear otros tipos de objetos visuales. Vamos a crear un gráfico de líneas a continuación.

  1. Pegue el código de R siguiente en el editor de scripts de 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. Seleccione el icono Ejecutar script para ver el resultado.

    Captura de pantalla del resultado de ejecutar el script, que es un trazado de líneas.

  3. Cuando el script de R esté listo, cópielo en el script.r archivo ubicado en el directorio raíz del proyecto visual.

  4. En el archivo capabilities.json, cambie dataRoles:name a dataset y ajuste la entrada de dataViewMappings a dataset.

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. Agregue el código siguiente para admitir el cambio de tamaño de la imagen en el archivo 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";
      }
    

Adición de bibliotecas al paquete visual

El corrplot paquete crea una presentación gráfica de una matriz de correlación. Para obtener más información sobre corrplot, vea Introducción al paquete corrplot.

  1. Agregue la corrplot dependencia de biblioteca al dependencies.json archivo. Este es un ejemplo del contenido del archivo:

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. Ahora puede empezar a usar el paquete corrplot en el script.r archivo.

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

    El resultado del uso corrplot del paquete es similar al de este ejemplo:

    Captura de pantalla del panel de visualización con cuatro óvalos creados por corrplot.

Agregar una propiedad estática al panel de propiedades

Ahora que tenemos un objeto visual básico corrplot , vamos a agregar propiedades al panel de propiedades que permiten al usuario cambiar la apariencia del objeto visual.

Usamos el method argumento para configurar la forma de los puntos de datos. El script predeterminado usa un círculo. Modifique el objeto visual para permitir que el usuario elija entre varias opciones.

  1. Defina un object denominado settings en el archivo capabilities.json y asígnele las siguientes propiedades.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Abra el archivo src/settings.ts . Cree una VisualCardSettings clase con las propiedades públicas method, name, displayName y slices como se muestra en el cuadro de código a continuación.

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

    Después de estos pasos, puede cambiar la propiedad del objeto visual.

    Captura de pantalla de la configuración del objeto visual de R.

    Por último, el script de R debe tener una propiedad predeterminada. Si el usuario no cambia el valor de propiedad (en este caso, la configuración de la forma), el objeto visual usa este valor.

    En el caso de las variables en tiempo de ejecución de R para las propiedades, la convención de nomenclatura es <objectname>_<propertyname>, en este caso, settings_method.

  3. Ejecute el siguiente script de R:

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

Empaqueta e importa tu objeto visual

Ahora puede empaquetar el objeto visual e importarlo en cualquier informe de Power BI.

  1. Rellene los displayName, supportUrl, description, name del autor y email, y cualquier otra información importante en el archivo pbivis.json.

  2. Si desea cambiar el icono del objeto visual en el panel de visualización, reemplace el archivo icon.pngen la carpeta assets.

  3. Desde el directorio raíz de tu aplicación visual, ejecuta:

    pbiviz package
    

    Para obtener más información sobre el empaquetado del objeto visual, consulte Empaquetado del objeto visual personalizado.

  4. Importe el archivo pbiviz del objeto visual a cualquier informe de Power BI. Consulte Importación de un archivo visual desde el equipo local en Power BI para obtener instrucciones sobre cómo hacerlo.

  5. Tu objeto visual final tiene el siguiente aspecto:

Captura de pantalla de la configuración de visualización R con el valor cambiado.