Power BI 및 R을 사용한 소셜 네트워크 분석: 사용자 지정 시각적 개체 가이드

게시 됨: 2022-07-22

소셜 네트워크 분석은 다양한 전문적 요구를 충족시키는 중요한 도구가 되었습니다. 표적 마케팅과 같은 기업 목표를 알리고 보안 또는 평판 위험을 식별할 수 있습니다. 소셜 네트워크 분석은 또한 기업이 내부 목표를 달성하는 데 도움이 될 수 있습니다. 소셜 네트워크 분석은 직원 행동과 회사의 여러 부분 간의 관계에 대한 통찰력을 제공합니다.

조직은 소셜 네트워크 분석을 위해 다양한 소프트웨어 솔루션을 사용할 수 있습니다. 각각은 장단점이 있으며 다른 목적에 적합합니다. 이 문서에서는 오늘날 가장 일반적으로 사용되는 데이터 시각화 도구 중 하나인 Microsoft의 Power BI에 중점을 둡니다. Power BI는 많은 소셜 네트워크 추가 기능을 제공하지만 R에서 사용자 지정 시각적 개체를 탐색하여 보다 강력하고 유연한 결과를 생성합니다.

이 튜토리얼은 기본 그래프 이론, 특히 방향성 그래프에 대한 이해를 전제로 합니다. 또한 이후 단계는 Windows에서만 사용할 수 있는 Power BI Desktop에 가장 적합합니다. 독자는 Mac OS 또는 Linux에서 Power BI 브라우저를 사용할 수 있지만 Power BI 브라우저는 Excel 통합 문서 가져오기와 같은 특정 기능을 지원하지 않습니다.

시각화를 위한 데이터 구조화

소셜 네트워크 생성은 연결(에지) 데이터 수집으로 시작됩니다. 연결 데이터에는 원본 노드대상 노드 (가장자리의 양쪽 끝에 있는 노드)라는 두 가지 기본 필드가 있습니다. 이러한 노드 외에도 데이터를 수집하여 일반적으로 노드 또는 에지 속성으로 표시되는 보다 포괄적인 시각적 통찰력을 생성할 수 있습니다.

1) 노드 속성

  • 모양 또는 색상 : 사용자의 유형(예: 사용자의 위치/국가)을 나타냅니다.
  • Size : 사용자의 팔로워 수와 같은 네트워크의 중요성을 나타냅니다.
  • 이미지 : 사용자의 아바타와 같은 개별 식별자로 작동

2) 모서리 속성

  • 색상 , 또는 화살촉 연결 : 두 사용자를 연결하는 게시물 또는 트윗의 감정과 같은 연결 유형을 나타냅니다.
  • 너비 : 연결 강도를 나타냅니다(예: 주어진 기간 동안 두 사용자 사이에서 관찰된 멘션 또는 리트윗 수).

이러한 속성이 어떻게 작동하는지 보기 위해 소셜 네트워크 시각적 개체의 예를 살펴보겠습니다.

다양한 너비의 선으로 연결된 원 그래프는 세 개의 개별 섹션으로 나타납니다. 그래프의 왼쪽에는 육각형에 1, 2, 3, 4, 5, 6으로 레이블이 지정된 다양한 크기의 6개의 녹색 모양이 있습니다. 숫자 1-5는 원이고 6은 다이아몬드입니다. 다양한 너비와 방향의 녹색 화살표로 서로 연결되어 있으며 일부 화살촉은 녹색으로 채워져 있고 다른 화살촉은 채워져 있지 않습니다. 녹색 모양의 오른쪽에는 다음 섹션이 있습니다. 7, 8, 9로 레이블이 지정된 삼각형으로 배열된 3개의 진한 파란색 모양이 다양한 너비와 방향의 파란색 화살표로 서로 연결되어 있습니다(일부 화살촉은 파란색으로 채워짐). 노드 7과 9는 다양한 너비와 방향의 회색 화살표로 노드 3과 4에 연결됩니다(일부 화살촉은 회색으로 채워짐). 그래프 중앙의 처음 두 모양 그룹 아래에는 10이라는 레이블이 지정된 단일 연한 파란색 다이아몬드가 있습니다. 다양한 너비와 방향의 회색 점선 화살표로 노드 5, 4, 9에 연결됩니다(일부 화살촉은 회색으로 채워짐). .
녹색, 연한 파란색 및 진한 파란색 노드와 다양한 원 또는 다이아몬드 모양은 다양한 노드 유형을 보여줍니다. 배경이 투명한 숫자는 노드 이미지 식별자 역할을 하며 더 큰 노드(예: 노드 4)는 네트워크에서 더 중요합니다. 다른 가장자리 유형은 색상(녹색, 파란색 또는 회색), 획(실선 또는 점선) 및 화살촉(빈 또는 채워짐)으로 표시됩니다. 가장자리 너비는 강도를 나타냅니다(예: 노드 8에서 노드 9로의 연결이 강함).

또한 노드 또는 에지 속성을 통해 쉽게 표현할 수 없는 기타 정보를 지원할 수 있으므로 호버 텍스트를 사용하여 위의 매개변수를 보완하거나 대체할 수 있습니다.

Power BI의 소셜 네트워크 확장 비교

소셜 네트워크의 다양한 데이터 기능을 정의했으므로 Power BI에서 네트워크를 시각화하는 데 사용되는 4가지 인기 있는 도구의 장단점을 살펴보겠습니다.

확대 Arthur Graus의 소셜 네트워크 그래프 네트워크 내비게이터 ZoomCharts의 고급 네트워크(Light Edition) R을 사용한 맞춤형 시각화
동적 노드 크기
동적 가장자리 크기 아니 아니
노드 색상 사용자 정의 아니
복잡한 소셜 네트워크 처리 아니
노드의 프로필 이미지 아니 아니
조정 가능한 줌 아니
상위 N 연결 필터링 아니 아니 아니
호버에 대한 사용자 정의 정보 아니 아니 아니
가장자리 색상 사용자 정의 아니 아니 아니
기타 고급 기능 아니 아니 아니


Arthur Graus의 Social Network Graph, Network Navigator 및 ZoomCharts의 Advanced Networks(Light Edition)는 모두 간단한 소셜 네트워크를 개발하고 첫 번째 소셜 네트워크 분석을 시작하는 데 적합한 확장입니다.

많은 진한 파란색, 밝은 파란색 및 주황색 원(50개 이상의 원)은 흰색 배경에 가는 회색 선으로 연결됩니다. 원은 단색 테두리가 있고 흰색 배경을 가진 다양한 포켓몬의 작은 이미지로 채워져 있으며 원은 대부분의 회색 선의 시야를 차단합니다. 전체적으로 원형을 이루고 있습니다.
Arthur Graus 확장 프로그램의 소셜 네트워크 그래프를 사용하여 만든 시각화 예시입니다.

많은 파란색, 보라색 및 회색 원(50개 이상의 원)은 흰색 배경에 가는 회색 선으로 연결됩니다. 원은 실선으로 채워져 있으며 일부 회색 선의 시야를 차단합니다. 그들은 전체적으로 원형 배열을 형성합니다.
Network Navigator 확장을 사용하여 만든 시각화 예시입니다.

많은 큰 청록색과 작은 주황색 원(50개 이상의 원)은 흰색 배경에 가는 회색 선으로 연결됩니다. 원은 실선으로 채워져 있으며 대부분의 회색 선이 보입니다. 그들은 전체적으로 수평 쐐기 모양을 형성하며 더 밀집된 원이 오른쪽에 나타납니다. 차트의 왼쪽 하단에는 몇 개의 위젯 아이콘과 레이블이 지정된 두 개의 원이 있습니다. "사용자로부터" 레이블이 지정된 청록색 원과 "사용자에게" 레이블이 지정된 주황색 원입니다. 차트의 오른쪽 하단에는 "zoomcharts"라는 로고가 있습니다.
Advanced Networks by ZoomCharts(Light Edition) 확장을 사용하여 만든 시각화 예시.

그러나 데이터를 생생하게 만들고 시선을 사로잡는 시각적 개체로 획기적인 통찰력을 발견하거나 소셜 네트워크가 특히 복잡한 경우 R에서 사용자 지정 시각적 개체를 개발하는 것이 좋습니다.

많은 녹색, 파란색 및 보라색 원(50개 이상의 원)은 흰색 배경에 다양한 색상(녹색, 회색 및 빨간색)의 가는 선으로 연결됩니다. 원은 단단하고 중앙에 포켓몬 이미지가 채워져 있으며 가는 선이 대부분 보입니다. 그것들은 전체적으로 퍼진 원형 모양을 형성하며 녹색 원이 더 작은 파란색 또는 자주색 원을 향해 자주 분기됩니다. 차트의 오른쪽 상단 모서리에는 "소셜 네트워크"라는 텍스트가 있고 차트 아래에는 관련 텍스트가 있는 선과 원의 범례가 있습니다. "부정적" 텍스트가 있는 빨간색 선, "멘션" 텍스트가 있는 파란색 원, "리트윗" 텍스트가 있는 자주색 원.
R에서 사용자 지정 시각적 개체를 사용하여 만든 시각화의 예

이 사용자 지정 시각화는 자습서의 R에서 소셜 네트워크 확장의 최종 결과이며 R에서 제공하는 다양한 기능과 노드/에지 속성을 보여줍니다.

R을 사용하여 Power BI용 소셜 네트워크 확장 빌드

R을 사용하여 Power BI에서 소셜 네트워크를 시각화하는 확장 프로그램을 만드는 것은 5가지 개별 단계로 구성됩니다. 그러나 소셜 네트워크 확장을 구축하기 전에 데이터를 Power BI에 로드해야 합니다.

전제 조건: Power BI용 데이터 수집 및 준비

Twitter 및 Facebook 데이터를 기반으로 하는 테스트 데이터 세트로 이 튜토리얼을 따르거나 자신의 소셜 네트워크를 진행할 수 있습니다. 우리의 데이터는 무작위로 추출되었습니다. 원하는 경우 실제 Twitter 데이터를 다운로드할 수 있습니다. 필요한 데이터를 수집한 후 Power BI에 추가합니다(예: Excel 통합 문서를 가져오거나 데이터를 수동으로 추가). 결과는 다음 표와 유사해야 합니다.

13개의 회색 및 흰색 행이 교대로 있는 테이블이 나타납니다. 제목이 ---"소셜 네트워크"---아래에 헤더가 있습니다. 첫 번째 열에는 "From User"라는 레이블이 지정되어 있으며 8개의 "1" 텍스트와 5개의 "2" 텍스트가 있습니다. 두 번째 열에는 "사용자에게"라는 레이블이 지정되어 있고 (위에서 아래로) 2, 3, 5, 6, 7, 8, 9, 10, 7, 8, 11, 13, 14로 읽습니다. 세 번째 열에는 " Number of Connections"를 읽고 (위에서 아래로): 12, 46, 29, 79, 49, 11, 90, 100, 66, 29, 62, 13, 45를 읽습니다. 네 번째 열은 "유형"으로 레이블이 지정되고 ( 위에서 아래로): 리트윗, 멘션, 멘션, 리트윗, 리트윗, 리트윗, 멘션, 멘션, 리트윗, 리트윗, 리트윗, 리트윗, 멘션. 다섯 번째 열에는 "감정"이라는 레이블이 지정되어 있으며 위에서 아래로 긍정적, 긍정적, 부정적, 중립적, 긍정적, 부정적, 긍정적, 중립적, 중립적, 부정적, 부정적, 부정적, 부정적으로 읽습니다. 여섯 번째 열에는 "From User Name"이라는 레이블이 지정되어 있으며 8개의 "Aaliyah" 텍스트와 5개의 "Aaron" 텍스트가 있습니다. 일곱 번째 열은 "사용자 이름으로"를 읽고 (위에서 아래로) Aaron, Abel, Abraham, Ace, Adalyn, Adalynn(2개의 N), Adam, Addison, Adalyn, Adalynn(2개의 N), Adeline, Adriel, Aidan을 읽습니다. 여덟 번째 열은 "From Avatar"이며 8개의 "https://raychemmedica.com/SampleImages/Pokemon/1.png" 텍스트와 5개의 "https://raychemmedica.com/SampleImages/Pokemon/2.png" 텍스트가 있습니다. . 아홉 번째 열은 "To Avatar"로 표시되고 각 항목에는 "https://raychemmedica.com/SampleImages/Pok"이라는 텍스트가 있으며 잘린 것처럼 보입니다.

데이터를 설정했으면 사용자 지정 시각화를 만들 준비가 된 것입니다.

1단계: 시각화 템플릿 설정

Power BI 시각화를 개발하는 것은 간단하지 않습니다. 기본 시각적 개체에도 수천 개의 파일이 필요합니다. 다행히 Microsoft는 몇 줄의 코드만으로 필요한 인프라 지원 파일을 제공하는 pbiviz 라는 라이브러리를 제공합니다. 또한 pbiviz 라이브러리는 모든 최종 파일을 .pbiviz 파일로 다시 패키징하여 시각화로 Power BI에 직접 로드할 수 있습니다.

pbiviz 를 설치하는 가장 간단한 방법은 Node.js를 사용하는 것입니다. pbiviz 가 설치되면 시스템의 명령줄 인터페이스를 통해 사용자 지정 R 시각적 개체를 초기화해야 합니다.

 pbiviz new toptalSocialNetworkByBharatGarg -t rhtml cd toptalSocialNetworkByBharatGarg npm install pbiviz package

toptalSocialNetworkByBharatGarg 를 시각화에 원하는 이름으로 바꾸는 것을 잊지 마십시오. -t rhtmlpbiviz 패키지에 R 기반 HTML 시각화를 개발하기 위한 템플릿을 생성해야 함을 알립니다. 패키지에 작성자 이름 및 이메일과 같은 필드를 아직 지정하지 않았기 때문에 오류가 표시되지만 이 문제는 자습서의 뒷부분에서 해결할 것입니다. pbiviz 스크립트가 PowerShell에서 전혀 실행되지 않는 경우 먼저 Set-ExecutionPolicy RemoteSigned 를 사용하여 스크립트를 허용해야 할 수 있습니다.

코드를 성공적으로 실행하면 다음 구조의 폴더가 표시됩니다.

8개의 하위 폴더(.tmp, .vscode, assets, dist, node_modules, r_files, src 및 style)와 8개의 파일(capabilities.json, dependencies.json, package.json, package-lock.json, pbiviz)이 포함된 파일 탐색기 목록 .json, script.r, tsconfig.json 및 tslint.json). capability.json(2KB) 및 package-lock.json(23KB)을 제외한 모든 파일은 1KB입니다.

폴더 구조가 준비되면 사용자 지정 시각화를 위한 R 코드를 작성할 수 있습니다.

2단계: R에서 시각화 코딩

첫 번째 단계에서 생성된 디렉토리에는 기본 코드로 구성된 script.r 이라는 파일이 있습니다. (기본 코드는 R에서 사용 가능한 iris 샘플 데이터베이스를 사용하여 Petal.Length 에 의한 Petal.Species 의 히스토그램을 그리는 간단한 Power BI 확장을 생성합니다.) 코드를 업데이트하지만 주석이 달린 섹션을 포함하여 기본 구조를 유지합니다.

우리 프로젝트는 세 가지 R 라이브러리를 사용합니다.

  • DiagrammeR: 텍스트에서 그래프 생성
  • visNetwork: 대화형 네트워크 시각화 제공
  • data.table: data.frame과 유사한 데이터 구성 지원

라이브러리 사용을 반영하기 위해 script.rLibrary Declarations 섹션에 있는 코드를 교체해 보겠습니다.

 libraryRequireInstall("DiagrammeR") libraryRequireInstall("visNetwork") libraryRequireInstall("data.table")

다음으로 Actual code 섹션의 코드를 R 코드로 교체합니다. 시각화를 만들기 전에 먼저 데이터를 읽고 처리해야 합니다. Power BI에서 두 가지 입력을 가져옵니다.

  • num_records : 네트워크에서 상위 N 개의 연결만 선택하도록 숫자 입력 N (표시되는 연결 수를 제한하기 위해)
  • dataset : 우리의 소셜 네트워크 노드와 에지

플로팅할 N 개의 연결을 계산하려면 Power BI가 기본적으로 단일 숫자 값 대신 벡터를 제공하기 때문에 num_records 값을 집계해야 합니다. max 와 같은 집계 함수는 다음 목표를 달성합니다.

 limit_connection <- max(num_records)

이제 dataset 를 사용자 정의 열이 있는 data.table 객체로 읽습니다. 가장 빈번한 연결을 테이블 상단에 배치하는 내림차순으로 데이터 세트를 값별로 정렬합니다. 이렇게 하면 num_records 와의 연결을 제한할 때 플롯할 가장 중요한 레코드를 선택할 수 있습니다.

 dataset <- data.table(from = dataset[[1]] ,to = dataset[[2]] ,value = dataset[[3]] ,col_sentiment = dataset[[4]] ,col_type = dataset[[5]] ,from_name = dataset[[6]] ,to_name = dataset[[7]] ,from_avatar = dataset[[8]] ,to_avatar = dataset[[9]])[ order(-value)][ seq(1, min(nrow(dataset), limit_connection))]

다음으로, 고유한 사용자 ID( uid )를 생성하고 각 사용자에게 할당하고 이를 새 테이블에 저장하여 사용자 정보를 준비해야 합니다. 또한 총 사용자 수를 계산하고 해당 정보를 num_nodes 라는 별도의 변수에 저장합니다.

 user_ids <- data.table(id = unique(c(dataset$from, dataset$to)))[, uid := 1:.N] num_nodes <- nrow(user_ids)

다음을 포함한 추가 속성으로 사용자 정보를 업데이트하겠습니다.

  • 팔로워 수(노드 크기).
  • 레코드 수입니다.
  • 사용자 유형(색상 코드).
  • 아바타 링크.

R의 merge 기능을 사용하여 테이블을 업데이트합니다.

 user_ids <- merge(user_ids, dataset[, .(num_follower = uniqueN(to)), from], by.x = 'id', by.y = 'from', all.x = T)[is.na(num_follower), num_follower := 0][, size := num_follower][num_follower > 0, size := size + 50][, size := size + 10] user_ids <- merge(user_ids, dataset[, .(sum_val = sum(value)), .(to, col_type)][order(-sum_val)][, id := 1:.N, to][id == 1, .(to, col_type)], by.x = 'id', by.y = 'to', all.x = T) user_ids[id %in% dataset$from, col_type := '#42f548'] user_ids <- merge(user_ids, unique(rbind(dataset[, .('id' = from, 'Name' = from_name, 'avatar' = from_avatar)], dataset[, .('id' = to, 'Name' = to_name, 'avatar' = to_avatar)])), by = 'id')

또한 생성된 uid 를 원본 데이터세트에 추가하여 나중에 코드 from 사용자 ID to 검색할 수 있습니다.

 dataset <- merge(dataset, user_ids[, .(id, uid)], by.x = "from", by.y = "id") dataset <- merge(dataset, user_ids[, .(id, uid_retweet = uid)], by.x = "to", by.y = "id") user_ids <- user_ids[order(uid)]

다음으로 시각화를 위한 노드 및 에지 데이터 프레임을 생성합니다. 노드의 styleshape (채워진 원)을 선택하고 user_ids 테이블의 올바른 열을 선택하여 노드의 color , data , valueimage 속성을 채웁니다.

 nodes <- create_node_df(n = num_nodes, type = "lower",, color = user_ids$col_type, shape = 'circularImage', data = user_ids$uid, value = user_ids$size, image = user_ids$avatar, title = paste0("<p>Name: <b>", user_ids$Name,"</b><br>", "Super UID <b>", user_ids$id, "</b><br>", "# followers <b>", user_ids$num_follower, "</b><br>", "</p>") )

유사하게, 우리의 edge' from , tocolor 속성에 해당하는 dataset 테이블 열을 선택합니다.

 edges <- create_edge_df(from = dataset$uid, to = dataset$uid_retweet, arrows = "to", color = dataset$col_sentiment)

마지막으로 노드 및 에지 데이터 프레임이 준비되면 visNetwork 라이브러리를 사용하여 시각화를 만들고 나중에 기본 코드에서 사용할 p 라는 변수에 저장해 보겠습니다.

 p <- visNetwork(nodes, edges) %>% visOptions(highlightNearest = list(enabled = TRUE, degree = 1, hover = T)) %>% visPhysics(stabilization = list(enabled = FALSE, iterations = 10), adaptiveTimestep = TRUE, barnesHut = list(avoidOverlap = 0.2, damping = 0.15, gravitationalConstant = -5000))

여기에서는 visOptions 및 visPhysics에서 몇 가지 네트워크 시각화 구성을 사용자 지정합니다. 자유롭게 문서 페이지를 살펴보고 원하는 대로 이러한 옵션을 업데이트하십시오. 이제 Actual code 섹션이 완료되었으며 p = ggplotly(g); 줄을 제거하여 Create and save widget 섹션을 업데이트해야 합니다. 우리 자신의 시각화 변수 p 를 코딩했기 때문입니다.

3단계: Power BI용 시각화 준비

이제 R에서 코딩을 완료했으므로 Power BI에서 사용할 시각화를 준비하기 위해 지원 JSON 파일을 일부 변경해야 합니다.

capabilities.json 파일부터 시작하겠습니다. 여기에는 확장의 데이터 소스 및 기타 설정과 같이 시각적 개체에 대한 시각화 탭에 표시되는 대부분의 정보가 포함됩니다. 먼저 dataRoles 를 업데이트하고 기존 값을 데이터 datasetnum_records 입력에 대한 새 데이터 역할로 교체해야 합니다.

 # ... "dataRoles": [ { "displayName": "dataset", "description": "Connection Details - From, To, # of Connections, Sentiment Color, To Node Type Color", "kind": "GroupingOrMeasure", "name": "dataset" }, { "displayName": "num_records", "description": "number of records to keep", "kind": "Measure", "name": "num_records" } ], # ...

capabilities.json 파일에서 dataViewMappings 섹션도 업데이트하겠습니다. 입력이 준수해야 하는 conditions 을 추가하고 새 데이터 역할 및 해당 조건과 일치하도록 scriptResult 를 업데이트합니다. 변경 사항은 scriptResult 아래의 select 섹션과 함께 conditions 섹션을 참조하십시오.

 # ... "dataViewMappings": [ { "conditions": [ { "dataset": { "max": 20 }, "num_records": { "max": 1 } } ], "scriptResult": { "dataInput": { "table": { "rows": { "select": [ { "for": { "in": "dataset" } }, { "for": { "in": "num_records" } } ], "dataReductionAlgorithm": { "top": {} } } } }, # ...

dependencies.json 파일로 넘어갑시다. 여기에서는 Power BI가 필요한 라이브러리를 식별하고 설치할 수 있도록 cranPackages 아래에 세 개의 추가 패키지를 추가합니다.

 { "name": "data.table", "displayName": "data.table", "url": "https://cran.r-project.org/web/packages/data.table/index.html" }, { "name": "DiagrammeR", "displayName": "DiagrammeR", "url": "https://cran.r-project.org/web/packages/DiagrammeR/index.html" }, { "name": "visNetwork", "displayName": "visNetwork", "url": "https://cran.r-project.org/web/packages/visNetwork/index.html" },

참고: Power BI는 이러한 라이브러리를 자동으로 설치해야 하지만 라이브러리 오류가 발생하면 다음 명령을 실행해 보세요.

 install.packages(c("DiagrammeR", "htmlwidgets", "visNetwork", "data.table", "xml2"))

마지막으로 시각적 개체에 대한 관련 정보를 pbiviz.json 파일에 추가해 보겠습니다. 다음 필드를 업데이트하는 것이 좋습니다.

  • 비주얼의 설명 필드
  • 시각적 개체의 지원 URL
  • 시각적 개체의 GitHub URL
  • 저자의 이름
  • 저자의 이메일

이제 파일이 업데이트되었으며 명령줄에서 시각화를 다시 패키징해야 합니다.

 pbiviz package

코드가 성공적으로 실행되면 dist 디렉터리에 .pbiviz 파일이 생성되어야 합니다. 이 튜토리얼에서 다루는 전체 코드는 GitHub에서 볼 수 있습니다.

4단계: 시각화를 Power BI로 가져오기

Power BI에서 새 시각화를 가져오려면 Power BI 보고서(기존 데이터에 대한 보고서 또는 테스트 데이터에 대한 필수 구성 요소 단계에서 만든 보고서)를 열고 시각화 탭으로 이동합니다. ... [추가 옵션] 버튼을 클릭하고 파일에서 시각적 개체 가져오기 를 선택합니다. 참고: 시각화 탭을 표시하려면 먼저 브라우저에서 편집 을 선택해야 할 수 있습니다.

"시각화"라는 제목과 오른쪽에 두 개의 ">" 화살표가 있는 창이 나타납니다. 아래에는 두 개의 이미지가 있는 "Build Visual"이라는 텍스트가 있습니다. 두 개의 노란색 직사각형과 왼쪽에 선이 있고 오른쪽에 종이와 붓이 있습니다. 두 개의 노란색 직사각형 이미지가 선택되고 그 아래에 30개 이상의 다양한 그래프 아이콘 패널이 있습니다. 마지막 아이콘은 "더 많은 시각적 개체 가져오기" 텍스트가 있는 줄임표입니다. 아이콘 패널 아래에 "여기에 데이터 필드 추가"라는 텍스트 줄이 있는 텍스트 "값"이 있습니다. 그 아래에는 "Drill through"라는 텍스트가 있고 그 옆에 "Off" 라디오 버튼이 선택된 "Cross-report"가 있습니다.

시각화 폴더의 dist 디렉터리로 이동하고 .pbiviz 파일을 선택하여 시각적 개체를 Power BI에 원활하게 로드합니다.

5단계: Power BI에서 시각화 만들기

가져온 시각화를 이제 시각화 창에서 사용할 수 있습니다. 시각화 아이콘을 클릭하여 보고서에 추가한 다음 관련 열을 datasetnum_records 입력에 추가합니다.

"toptalSocialNetworkByBharatGarg"라는 호버 텍스트가 있는 선택된 도구 아이콘이 있는 창이 나타납니다. 아이콘 아래에 "데이터 세트"라는 텍스트가 아래에 다양한 드롭다운 직사각형과 함께 나타납니다(위에서 아래로): From User, To User, 연결 수, 색상, 색상, 사용자 이름, 사용자 이름, Avatar, Avatar.

프로젝트 요구 사항에 따라 시각화에 추가 텍스트, 필터 및 기능을 추가할 수 있습니다. 또한 예제 프로젝트가 사용 가능한 기능의 모든 사용 사례를 다룰 수 없기 때문에 시각화를 더욱 향상시키는 데 사용한 세 가지 R 라이브러리에 대한 자세한 문서를 살펴보는 것이 좋습니다.

다음 소셜 네트워크 분석 업그레이드

최종 결과는 사용자 지정 Power BI 시각화를 생성할 때 R의 강력함과 효율성에 대한 증거입니다. 다음 데이터 세트에서 R의 사용자 지정 시각적 개체를 사용하여 소셜 네트워크 분석을 시도하고 포괄적인 데이터 통찰력으로 더 현명한 결정을 내립니다.

Toptal 엔지니어링 블로그는 이 기사에 제공된 코드 샘플을 검토해 준 Leandro Roser에게 감사를 표합니다.

위에서 아래로 "Gold"(금색), "Microsoft" 및 "Partner"(둘 다 검은색)라는 단어가 표시되고 그 뒤에 Microsoft 로고가 표시됩니다.
Microsoft 골드 파트너인 Toptal은 Microsoft 전문가들로 구성된 엘리트 네트워크입니다. 언제 어디서나 필요한 전문가와 함께 고성능 팀을 구성하세요!