Поделиться через


Руководство. Создание визуального элемента Power BI на основе R

Разработчик может создавать собственные визуальные элементы Power BI. Эти визуальные элементы могут использоваться вами, вашей организацией или сторонними лицами.

В этой статье пошаговые инструкции по созданию визуального элемента С R для Power BI.

В этом руководстве описано следующее:

  • Создание визуального элемента R с питанием
  • Изменение скрипта R в Power BI Desktop
  • Добавление библиотек в файл зависимостей визуального элемента
  • Добавление статического свойства

Необходимые компоненты

Начать

  1. Подготовьте некоторые примеры данных для визуального элемента. Эти значения можно сохранить в базе данных Excel или файле .csv и импортировать его в Power BI Desktop.

    MonthNo Total Units
    1 2303
    2 2319
    3 1732
    4 1615
    5 1427
    6 2253
    7 1147
    8 1515
    9 25 %
    10 3131
    11 3170
    12 2762
  2. Чтобы создать визуальный элемент, откройте PowerShell или терминал и выполните следующую команду:

    pbiviz new rVisualSample -t rvisual
    

    Эта команда создает новую папку для визуального элемента rVisualSample . Структура основана на шаблоне rvisual . Он создает файл с именем script.r в корневой папке визуального элемента. Этот файл содержит скрипт R, выполняемый для создания изображения при отрисовки визуального элемента. Вы можете создать скрипт R в Power BI Desktop.

  3. В созданном rVisualSample каталоге выполните следующую команду:

    pbiviz start
    
  4. В Power BI Desktop выберите визуальный элемент скрипта R:

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

  5. Назначьте данные визуальному элементу разработчика путем перетаскивания единиц MonthNo и Total в значения для визуального элемента.

    Screenshot showing where to add data to values.

  6. Задайте для типа агрегирования единицы "Всего" значение "Не суммировать".

    Screenshot of menu with option for not summarizing data.

  7. В редакторе скриптов R в Power BI Desktop введите следующее:

    plot(dataset)
    

    Эта команда создает точечную диаграмму, используя значения в семантической модели в качестве входных данных.

  8. Щелкните значок запуска скрипта, чтобы увидеть результат.

    Screenshot of R visual chart with data.

Изменение скрипта 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. Щелкните значок запуска скрипта, чтобы увидеть результат.

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

  3. Когда скрипт R будет готов, скопируйте его script.r в файл, расположенный в корневом каталоге визуального проекта.

  4. В файле capabilities.json измените значение : name на dataRolesнабор данных и задайте входные 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. Теперь вы можете начать использовать пакет corrplot в script.r файле.

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

    Результат использования corrplot пакета выглядит следующим образом:

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

Добавление статического свойства в область свойств

Теперь, когда у нас есть базовый corrplot визуальный элемент, давайте добавим свойства в область свойств, которая позволяет пользователю изменять внешний вид и чувствовать себя в визуальном элементе.

Мы используем method аргумент для настройки формы точек данных. Сценарий по умолчанию использует круг. Измените визуальный элемент, чтобы пользователь выбрал несколько вариантов.

  1. Определите вызываемую object настройку в файле capabilities.json и присвойте ему следующие свойства.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Откройте файл src/settings.ts. VisualCardSettings Создайте класс с общедоступными свойствами namemethodи displayName 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];
    }
    

    После выполнения этих действий можно изменить свойство визуального элемента.

    Screenshot of R visual settings.

    Наконец, r-script должен иметь свойство по умолчанию. Если пользователь не изменяет значение свойства (в данном случае параметр фигуры), визуальный элемент использует это значение.

    Для переменных среды выполнения 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. displayNameЗаполните файл , supportUrldescriptionавтор name и emailдругие важные сведенияpbivis.json.

  2. Если вы хотите изменить значок визуального элемента на панели визуализации, замените файл icon.png в папке ресурсов .

  3. Из корневого каталога визуального запуска:

    pbiviz package
    

    Дополнительные сведения о упаковке визуального элемента см. в статье "Упаковка пользовательского визуального элемента"

  4. Импортируйте pbiviz-файл визуального элемента в любой отчет Power BI. Сведения о том, как это сделать, см. в статье "Импорт визуального файла с локального компьютера в Power BI ".

  5. Окончательный визуальный элемент выглядит следующим образом:

Screenshot of R visual settings with changed value.