Cluster in ein Excel-Diagramm einfügen

2

Ich habe einen Datensatz ähnlich der folgenden Tabelle generiert.

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

Dieser Datensatz wird unter Verwendung des k-Mean-Cluster-Algorithmus generiert. Daher möchte ich meine Ausgabe in einem Diagramm als Cluster anzeigen. Diese Daten werden mit einem anderen Programm in C-Sprache generiert. Sobald ich diese Daten erhalten habe, möchte ich sie in Excel als Cluster darstellen, wie unten in verschiedenen Farben für jeden Cluster gezeigt. Kannst du mir bitte sagen, wie ich das machen kann?

enter image description here

Don P.
quelle

Antworten:

1

Erstellen Sie für jeden Cluster eine Spalte neben Ihren Quelldaten und verwenden Sie diese Formel, um den Y-Wert abzurufen, wenn die Zeilenbezeichnung der Spaltenbezeichnung entspricht:

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

Kopieren Sie quer und runter. Konstruieren Sie ein Streudiagramm mit den drei Reihen A, B und C, wobei alle die gleichen X-Werte verwenden.

enter image description here

teylyn
quelle
1

Ich schlage ein Tool namens vor Spaß Spaß unterstützt die Clusteranalyse in Excel.

Es ermöglicht Benutzern, JavaScript und Python (anstelle von klassischen VBA-Makros) in Excel zu codieren. Es werden auch externe Bibliotheken unterstützt. Mit diesem Tool können Sie eine beliebige JavaScript-Bibliothek verwenden, um Daten zu analysieren (z. B. Cluster-Analyse) oder Diagramme zu zeichnen.

Um die Frage zu beantworten, nimmt die Funktion Eingaben im Format des JSON-Arrays (in den Einstellungen definiert) entgegen und speichert sie in einer JavaScript-Variablen. Und erstellt dann eine Verknüpfung zwischen ihnen und Tabellenkalkulationen.

Hier nutze ich CanvasJS und jQuery, um dieses Diagramm zu zeichnen. Clusterfck.js wird für den Clusterprozess verwendet.   Der Kerncode:

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

Hier ist der Screenshot:

screenshot

Wie Sie sehen, verwendet es k-means cluster mit k = 4. Sie können die Hyperparameter im Code ändern.

Das Verknüpfung dieser Funktion des Online-Spielplatzes. Der Screenshot sieht wie folgt aus:

screenshot

Der zweite Bereich ist eine Vorschau von Excel. Der dritte Bereich ist der Codierungsbereich. Der letzte Bereich ist die Ausgabe des Codes.

Hoffe es hilft und viel Spaß :)

P.S. Ich bin ein Entwickler von Fun Fun

yi liang
quelle