visual-insights

![](https://travis-ci.org/kanaries/visual-insights.svg?branch=master) ![](https://img.shields.io/npm/v/visual-insights?color=blue) [![Coverage Status](https://coveralls.io/repos/github/Kanaries/visual-insights/badge.svg?branch=master)](https://coveralls.i

Usage no npm install needed!

<script type="module">
  import visualInsights from 'https://cdn.skypack.dev/visual-insights';
</script>

README

Visual-Insights

Coverage Status

Visual-Insights is an automated data analysis and visualization recommendation pipeline tool. It can find patterns in your datasets and choosen a efficiency way to express it with a visual design.

Rath is a augmented analytic and automated data analysis tools built based on visual-insights.

API

Docs

import { VIEngine } from 'visual-insights';

const vie = new VIEngine();

vie.setDataSource(dataSource);
    .setFieldKeys(keys);

VIEngine does not auto info analytic type of fields(dimension or measure), analytic types can only be controled by user through setDimensions and setMeasures

buildFieldsSummary

VIEngine stores field informatiion, which contains

interface IField {
    key: string;
    name?: string;
    analyticType: IAnalyticType;
    semanticType: ISemanticType;
    dataType: IDataType;
}

analyticType is set by setDimensions/Measures, while semanticType and dataType are automated infered through data.

const fields = vie.buildFieldsSummary()
    .fields;

buildFieldsSummary computes fields and fieldDictonary and store them in vi engine. While those two property can be infered from each other, we still store both of them for the reason that they will be frequently used in future.

after get fields, you can get details of them in vi engine, according to which you can use to decide which of them are dimensions and measures.

vie.setDimensions(dimensions);
    .setMeasures(measures);

buildGraph

vie.buildGraph();
  • result will be stored at vie.dataGraph.
  • you should make sure vie.(dimensions, measures, dataSource) are defined so as to use buildGraph.

clusterFields

->

  • dataGraph.DClusters
  • dataGraph.MClusters

buildCube

buildCube will build a kylin-like cube. it uses the cluster result as base cuboids which save a lot of costs.

getCombinationFromClusterGroups

it gets the clustering result and generates combination in each cluster. It is an internal API mainly be used by buildSubspaces.

buildSubspaces

buildSubspaces generate all subspaces(dimensions&measurs). VIEngine has a algorithm which reduce the size of all answer space, so you don't need to worry about it.

public buildSubspaces(
    DIMENSION_NUM_IN_VIEW: ConstRange = this.DIMENSION_NUM_IN_VIEW,
    MEASURE_NUM_IN_VIEW: ConstRange = this.MEASURE_NUM_IN_VIEW
): VIEngine

interface ConstRange {
    MAX: number;
    MIN: number;
}

examples

vie.buildSubspaces();
vie.buildSubspaces({ MAX: 5, MIN: 2}, {MAX: 2, MIN: 1});

buildSubspaces depends on dataGraph, so make sure buildDataGraph and clusterFields are called before you use buildSubspaces.

insightExtraction

It enumerates all subspaces generated before, it checks the significance of different patterns or insights. it is a async methods, for some of the pattern checker can be run on different threads or machine.

public async insightExtraction(viewSpaces: ViewSpace[] = this.subSpaces): Promise<IInsightSpace[]>
vie.insightExtraction()
    .then(spaces => {
        console.log(spaces)
    })

setInsightScores

insight scoring algorithm, which set final scores for item in insightSpaces.

vie.setInsightScores();

specification

map a insightSpace into visual specification. it will recommanded encoding based on expressiveness and effectiveness.

public specification(insightSpace: IInsightSpace)

LISCENSE

visual-insights is a automated pattern discovery and visualization design lib. It provides high dimensional auto EDA and visual design algorithm.

Copyright (C) 2019 Observed Observer(Hao Chen)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.