Учебник: Создание визуализации Power BI на основе R

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

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

В этом руководстве вы узнаете, как:

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

Предпосылки

Начало работы

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

    НомерМесяца Всего единиц
    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. Чтобы создать визуальный элемент, откройте PowerShell или терминал и выполните следующую команду:

    pbiviz new rVisualSample -t rvisual
    

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

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

    pbiviz start
    
  4. В Power BI Desktop выберите визуализацию на языке R:

    Снимок экрана: визуальный элемент управления скриптом R в Power BI Desktop.

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

    Снимок экрана, показывающий, где добавить данные к значениям.

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

    Снимок экрана: меню с параметром не суммировать данные.

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

    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, расположенный в корневой директории вашего проекта Visual.

  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. Теперь вы можете начать использовать пакет corrplot в script.r файле.

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

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

    Снимок экрана: панель визуализации с четырьмя овалами, созданными 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 Создайте класс с общедоступными свойствами methodnameи displayNameslices, как показано в поле кода.

    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-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, supportUrl, description, автора name, email и любую другую важную информацию в файле pbivis.json.

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

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

    pbiviz package
    

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

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

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

Снимок экрана: настройки визуализации R с измененным значением.