Home Reference Source Test

packages/causality-log/src/Vivid/scatter.chart.mixins.js

const ScatterChartMixins = (BasePlotClass)=> class extends BasePlotClass{
    scatter({data, title, xRange, yRange, xLabel, yLabel, style, width, height, plotId}){
        let kwdata = Array.isArray(data)?
                data.map(d=>[...d,'data']):
                Object.entries(data).reduce((s,[k, data])=>[...s, ...data.map(d=>[...d, k])],[]);
        let { svg, xMap, yMap, color } = 
            this.basePlot({kwdata, title, xRange, yRange, xLabel, yLabel, style, width, height});
        svg.selectAll("circle")
            .data(kwdata)
            .enter().append("circle")
            .attr("cx", ([x,y, name])=>xMap(x))
            .attr("cy", ([x,y, name])=>yMap(y))
            .attr("r", 5)
            .attr("fill", ([x,y,name])=>color(name));
        title = title?title:'unname';
        plotId = plotId?plotId:title.replace(/\s/g,'_') + '.png';
        return plotId;
    }
};

export default ScatterChartMixins;