Poner grupos en un gráfico de Excel

Poner grupos en un gráfico de Excel

Tengo un conjunto de datos generado similar a la siguiente tabla.

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

Este conjunto de datos se generará utilizando el algoritmo de agrupación k-media. Por eso quiero mostrar mi resultado en un gráfico, como grupos. Estos datos se generarán mediante otro programa en lenguaje C. Una vez que obtenga estos datos, quiero trazarlos en Excel como grupos como se muestra a continuación en diferentes colores para cada grupo. ¿Puedes decirme cómo puedo hacer esto?

ingrese la descripción de la imagen aquí

Respuesta1

Para cada grupo, cree una columna junto a sus datos de origen y use esta fórmula para obtener el valor Y si la etiqueta de la fila es igual a la etiqueta de la columna:

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

Copie a lo largo y a lo ancho. Construya un gráfico de dispersión con las tres series A, B y C, todas ellas usando los mismos valores de X.

ingrese la descripción de la imagen aquí

Respuesta2

Propongo una herramienta llamadaDivertido divertido que admite el análisis de conglomerados en Excel.

Permite a las personas codificar JavaScript y Python (en lugar de las macros clásicas de VBA) en Excel. También admite bibliotecas externas. Con esta herramienta, puede utilizar cualquier biblioteca de JavaScript que desee para realizar análisis de datos (por ejemplo, análisis de conglomerados) o trazar gráficos.

Para responder a la pregunta, la función toma entradas en el formato de matriz JSON (definida en la configuración) y las guarda en una variable de JavaScript. Y luego crea un vínculo entre ellos y las hojas de cálculo.

Aquí usolienzojsy jQuery para trazar este gráfico.clusterfck.jsse utiliza para el proceso de clúster. El código central:

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

Aquí está la captura de pantalla:

captura de pantalla

Como puede ver, utiliza un grupo de k-medias con k=4. Puede cambiar los hiperparámetros en el código.

Elenlacede esta función de patio de juegos en línea. La captura de pantalla es la siguiente:

captura de pantalla

El segundo panel es una vista previa de Excel. El tercer panel es el área de codificación. El último panel es la salida del código.

Espero que te ayude y te diviertas :)

PD: Soy desarrollador de Funfun.

información relacionada