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())

横方向と下方向にコピーします。すべて同じ X 値を使用して、3 つのシリーズ A、B、C を含む散布図を作成します。

ここに画像の説明を入力してください

答え2

私は、楽しい楽しいです Excel でのクラスター分析をサポートします。

このツールを使用すると、Excel で JavaScript と Python (従来の VBA マクロではなく) をコーディングできます。また、外部ライブラリもサポートしています。このツールを使用すると、任意の JavaScript ライブラリを使用してデータ分析 (クラスター分析など) を実行したり、グラフをプロットしたりできます。

質問に答えるために、関数は JSON 配列形式 (設定で定義) の入力を受け取り、それを JavaScript 変数に保存します。そして、それらとスプレッドシートの間にリンクを作成します。

ここで私はキャンバスJSそして、このグラフをプロットするための jQuery です。クラスタfck.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-means クラスターを使用しています。コード内のハイパー パラメーターを変更できます。

リンクオンライン プレイグラウンドのこの機能のスクリーンショットは次のとおりです。

スクリーンショット

2 番目のペインは Excel のプレビューです。3 番目のペインはコーディング領域です。最後のペインはコードの出力です。

役に立ち、楽しんでいただければ幸いです :)

PS 私はFunfunの開発者です

関連情報