다음을 통해 공유


자습서: 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
    8 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. MonthNo총 단위를 시각적 개체의 필드에 끌어 놓아 개발자 시각적 개체에 데이터를 할당합니다.

    값에 데이터를 추가할 위치를 보여 주는 스크린샷

  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 파일에서 : dataRolesname데이터 세트로 변경하고 입력을 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. 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 아래 코드 상자에 표시된 것처럼 공용 속성 method, name, 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];
    }
    

    이러한 단계 후에는 시각적 개체의 속성을 변경할 수 있습니다.

    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. displayName, supportUrl, description, 작성자 nameemail 그리고 기타 중요한 정보를 pbivis.json 파일에 입력합니다.

  2. 시각화 창에서 시각적 개체의 아이콘을 변경하려면 자산 폴더의 icon.png 파일을 바꿉 니다 .

  3. 귀하의 비주얼 실행 파일의 루트 디렉터리에서:

    pbiviz package
    

    시각적 개체 패키징에 대한 자세한 내용은 사용자 지정 시각적 개체 패키징을 참조하세요.

  4. 시각적 개체의 pbiviz 파일을 Power BI 보고서로 가져옵니다. 이 작업을 수행하는 방법에 대한 지침은 로컬 컴퓨터에서 Power BI로 시각적 파일 가져오기 를 참조하세요.

  5. 최종 시각적 요소는 다음 예제처럼 보입니다.

값이 변경된 R 시각적 개체 설정의 스크린샷