Colocando Clusters em um Gráfico do Excel

2

Eu tenho um conjunto de dados gerado semelhante à tabela a seguir.

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 dados será gerado usando o algoritmo de cluster k-mean. Então, quero mostrar minha saída em um gráfico, como clusters. Esses dados serão gerados usando outro programa na linguagem C. Depois de obter esses dados, quero plotá-los no Excel como clusters, conforme mostrado abaixo em cores diferentes para cada cluster. Você pode por favor me dizer como posso fazer isso

    
por Don P. 20.09.2016 / 01:10

2 respostas

1

Para cada cluster, crie uma coluna ao lado dos dados de origem e use essa fórmula para obter o valor Y se o rótulo da linha for igual ao rótulo da coluna:

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

Copiar em toda a parte. Construa um gráfico de dispersão com as três séries A, B e C, todas elas usando os mesmos valores de X.

    
por 20.09.2016 / 01:25
1

Eu proponho uma ferramenta chamada Funfun que suporta análise de cluster no Excel.

Ele permite que as pessoas codifiquem JavaScript e Python (em vez de macros VBA clássicas) no Excel. Também suporta bibliotecas externas. Com esta ferramenta, você pode usar qualquer biblioteca JavaScript que você gosta de fazer análise de dados (por exemplo, análise de cluster) ou para traçar gráficos.

Para responder a pergunta, a função recebe dados no formato do array JSON (definido nas configurações) e os salva em uma variável JavaScript. E, em seguida, cria um link entre eles e planilhas.

Aqui eu uso CanvasJS e jQuery para traçar este gráfico. Clusterfck.js é usado para o processo de cluster.   O código principal:

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

Veja a captura de tela:

Comovocêpodever,eleusaoclusterk-meanscomk=4.Vocêpodealterarosparâmetrosdohypernocódigo.

O link desta função do playground on-line. A captura de tela é a seguinte:

O segundo painel é uma prévia do Excel. O terceiro painel é a área de codificação. O último painel é a saída do código.

Espero que ajude e divirta-se:)

P.S. Eu sou um desenvolvedor do Funfun

    
por 08.12.2017 / 03:24