Skip to content

Advanced: Clustering

You can cluster the data into separate buckets to find some underlying complexity.

Example

xy
3.2751542.957587
-3.3444652.603513
0.355083-3.376585
1.8524353.547351
-2.0789732.552013
-0.993756-0.884433
2.6822524.007573
-3.0877762.878713
-1.565978-1.256985
2.4416110.444826
-0.6594873.111284
-0.459601-2.618005
2.177682.387793
-2.9209692.917485
-0.028814-4.168078
3.6257462.119041
-3.9123631.325108
-0.551694-2.814223
2.8558083.483301
-3.5944482.856651
0.421993-2.372646
1.6508213.407572
-2.0829023.384412
-0.718809-2.492514
4.5136233.841029
-4.8220114.607049
-0.656297-1.449872
1.9199014.439368
-3.2877493.918836
-1.576936-2.977622
3.5981431.97597
-3.9773294.900932
-1.79108-2.184517
3.9146543.559303
-1.9101084.166946
-1.226597-3.317889
1.1489463.345138
-2.1138643.548172
0.845762-3.589788
2.6290623.535831
-1.6407172.990517
-1.881012-2.485405
4.6069993.510312
-4.3664624.023316
0.765015-3.00127
3.1219042.173988
-4.0251394.65231
-0.559558-3.840539
4.3767544.863579
-1.8743084.032237
-0.089337-3.026809
3.9977872.518662
-3.0829782.884822
0.845235-3.454465
1.3272243.358778
-2.8899493.596178
-0.966018-2.839827
2.9607693.079555
-3.2755181.577068
0.639276-3.41284
sqlseal
TABLE clustering = table(0)
ADVANCED MODE
CHART

const datasetArray = data.map(d => ([d.x, d.y]))

var CLUSTER_COUNT = 6;
var DIENSIION_CLUSTER_INDEX = 2;
var COLOR_ALL = [
  '#37A2DA',
  '#e06343',
  '#37a354',
  '#b55dba',
  '#b5bd48',
  '#8378EA',
  '#96BFFF'
];
var pieces = [];
for (var i = 0; i < CLUSTER_COUNT; i++) {
  pieces.push({
    value: i,
    label: 'cluster ' + i,
    color: COLOR_ALL[i]
  });
}
return {
  dataset: [
  {
      source: datasetArray,
      id: 'data'
    },
    {
      transform: {
        type: 'ecStat:clustering',
        print: true,
        config: {
          clusterCount: CLUSTER_COUNT,
          outputType: 'single',
          outputClusterIndexDimension: DIENSIION_CLUSTER_INDEX
        }
      }
    }
  ],
  tooltip: {
    position: 'top'
  },
  visualMap: {
    type: 'piecewise',
    top: 'middle',
    min: 0,
    max: CLUSTER_COUNT,
    left: 10,
    splitNumber: CLUSTER_COUNT,
    dimension: DIENSIION_CLUSTER_INDEX,
    pieces: pieces
  },
  grid: {
    left: 120
  },
  xAxis: {},
  yAxis: {},
  series: {
    type: 'scatter',
    encode: { tooltip: [0, 1] },
    symbolSize: 15,
    itemStyle: {
      borderColor: '#555'
    },
    datasetIndex: 1
  }
};

SELECT * FROM clustering

clustering