Cluster in ein Excel-Diagramm einfügen

1995
Don P.

Ich habe einen Datensatz, der der folgenden Tabelle ähnlich ist.

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. Deshalb möchte ich meine Ausgabe in Form eines Clusters darstellen. 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 in den verschiedenen Farben für jeden Cluster dargestellt. Kannst du mir bitte sagen, wie ich das machen kann?

enter image description here

2

2 Antworten auf die Frage

1
teylyn

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

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

Kopieren Sie über und nach unten. Erstellen Sie ein Streudiagramm mit den drei Serien A, B und C, wobei alle die gleichen X-Werte verwenden.

enter image description here

1
yi liang

Ich schlage ein Werkzeug namens Funfun vor, das die Clusteranalyse in Excel unterstützt.

Damit können Benutzer JavaScript und Python (und nicht klassische VBA-Makros) in Excel codieren. Es unterstützt auch externe Bibliotheken. Mit diesem Tool können Sie eine beliebige JavaScript-Bibliothek verwenden, die Sie zur Datenanalyse (z. B. Clusteranalyse) oder zur grafischen Darstellung von Diagrammen verwenden möchten.

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

Hier verwende 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, wird ein k-mean-Cluster mit k = 4 verwendet. Sie können die Hyperparameter im Code ändern.

Der Link zu 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ß haben :)

PS Ich bin ein Entwickler von Funfun