Excel 그래프에 클러스터 넣기

Excel 그래프에 클러스터 넣기

다음 표와 유사한 데이터 세트가 생성되었습니다.

Label | X | Y | A | 1 | 1 | B | 2 | 2 | B | 3 | 2 | A | 4 | 3 | C | 5 | 4 | A | 4 | 3 | C | 2 | 1 | This list will expand to 1000 of items

이 데이터 세트는 k-평균 클러스터 알고리즘을 사용하여 생성됩니다. 그래서 내 결과를 그래프로 클러스터로 표시하고 싶습니다. 이러한 데이터는 C 언어의 다른 프로그램을 사용하여 생성됩니다. 이러한 데이터를 얻은 후에는 각 클러스터에 대해 서로 다른 색상으로 아래 표시된 대로 Excel에서 클러스터로 플롯하고 싶습니다. 어떻게 하면 되는지 알려주실 수 있나요?

여기에 이미지 설명을 입력하세요

답변1

각 클러스터에 대해 소스 데이터 옆에 열을 만들고 이 수식을 사용하여 행 레이블이 열 레이블과 같은 경우 Y 값을 가져옵니다.

=IF($A2=D$1,$C2,NA())

가로로 복사하고 아래로 복사합니다. 세 개의 계열 A, B, C로 분산형 차트를 구성합니다. 모두 동일한 X 값을 사용합니다.

여기에 이미지 설명을 입력하세요

답변2

나는 하나의 도구를 제안합니다펀펀 Excel에서 클러스터 분석을 지원합니다.

이를 통해 사람들은 Excel에서 (기존 VBA 매크로 대신) JavaScript 및 Python을 코딩할 수 있습니다. 외부 라이브러리도 지원합니다. 이 도구를 사용하면 원하는 JavaScript 라이브러리를 사용하여 데이터 분석(예: 클러스터 분석)을 수행하거나 그래프를 그릴 수 있습니다.

질문에 대답하기 위해 함수는 JSON 배열(설정에 정의됨) 형식으로 입력을 받아 JavaScript 변수에 저장합니다. 그런 다음 해당 문서와 스프레드시트 사이에 링크를 만듭니다.

여기서 나는 사용한다CanvasJS그리고 jQuery를 사용하여 이 차트를 그릴 수 있습니다.Clusterfck.js클러스터 프로세스에 사용됩니다. 핵심 코드:

var nb_clusters = 4;
// Calculate clusters.
var clusters = clusterfck.kmeans(data, nb_clusters); // data, nb_clusters
var chart = new CanvasJS.Chart("chartContainer", {
  title: {
    text: "Birth and death rate"
  },
  width:500,
  axisX: {
    title: "Birth rate",
    minimum: 0,
    maximum: 60
  },
  axisY: {
    title: "Death rate",
    titleFontSize: 16
  },
  data: [
    {
      type: "scatter",
      markerType: "circle", 
      dataPoints: process(clusters[0])
    },
    {
      type: "scatter",
      markerType: "square", 
      dataPoints: process(clusters[1])
    },
    {
      type: "scatter",
      markerType: "square", 
      dataPoints: process(clusters[2])
    },
    {
      type: "scatter",
      markerType: "cross", 
      dataPoints: process(clusters[3])
    }
  ]
});
chart.render();

스크린샷은 다음과 같습니다.

스크린샷

보시다시피 k=4인 k-평균 클러스터를 사용합니다. 코드에서 하이퍼 매개변수를 변경할 수 있습니다.

그만큼링크온라인 놀이터의 기능 중 하나입니다. 스크린샷은 다음과 같습니다.

스크린샷

두 번째 창은 Excel의 미리 보기입니다. 세 번째 창은 코딩 영역입니다. 마지막 창은 코드의 출력입니다.

도움이 되셨기를 바라며, 재미있게 즐겨보세요 :)

PS 저는 Funfun의 개발자입니다.

관련 정보