气泡

描述:当前是关于Echarts图表中的 散点图 示例。
 
            
//字符串截取
var wordLength = (value) => {
    var ret = ""; //拼接加\n返回的类目项
    var maxLength = 4; //每项显示文字个数
    var valLength = value.length; //X轴类目项的文字个数
    var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
    if (rowN > 1) //如果类目项的文字大于3,
    {
        for (var i = 0; i < rowN; i++) {
            var temp = ""; //每次截取的字符串
            var start = i * maxLength; //开始截取的位置
            var end = start + maxLength; //结束截取的位置
            //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
            temp = value.substring(start, end) + "\n";
            ret += temp; //凭借最终的字符串
        }
        return ret;
    } else {
        return value;
    }
}
//
var data = [{
        name: "职工家属",
        value: "12355"
    },
    {
        name: "新增落户农民",
        value: "12093"
    },
    {
        name: "公司员工",
        value: "8874"
    },
    {
        name: "农场职工",
        value: "7427"
    },
    {
        name: "其它",
        value: "4308"
    },

];
//偏移量
var offsetData = [
    [80, 53],
    [35, 73],
    [30, 33],
    [60, 33],
    [10, 48]
];
//symbolSize 散点气泡大小
var symbolSizeData = [200, 185, 175, 165, 135];
//
//循环定义series的data值
var datas = [];
for (var i = 0; i < data.length; i++) {
    var item = data[i];
    //var itemToStyle = datalist[i];

    datas.push({
        name: wordLength(item.name) + "\n" + item.value + "人",
        value: offsetData[i],
        symbolSize: symbolSizeData[i],
        label: {
            normal: {
                textStyle: {
                    fontSize: 14
                }
            }
        },
        itemStyle: {
            normal: {
                color: new echarts.graphic.RadialGradient(0.3, 0.5, 0.7, [{
                        offset: 0,
                        color: "rgba(4,88,120,0)"
                    },
                    {
                        offset: 1,
                        color: "rgba(1,98,156,0.6)"
                    }
                ]),
                opacity: 0.8,
                shadowColor: '#045878',
                shadowBlur: 10,
                shadowOffsetX: 1,
                shadowOffsetY: 1,
            },

        }
    });
}

var option = {
    //   backgroundColor: "transparent",
    backgroundColor: '#0e2147',
    grid: {
        show: false,
        top: 10,
        bottom: 10
    },
    xAxis: [{
        gridIndex: 0,
        type: "value",
        show: false,
        min: 0,
        max: 100,
        nameLocation: "middle",
        nameGap: 5
    }],
    yAxis: [{
        gridIndex: 0,
        min: 0,
        show: false,
        max: 100,
        nameLocation: "middle",
        nameGap: 30
    }],

    series: [{
        type: "scatter",
        symbol: "circle",
        symbolSize: 120,
        label: {
            normal: {
                show: true,
                formatter: "{b}",
                color: "#fff",
                textStyle: {
                    fontSize: "20"
                }
            }
        },

        itemStyle: {
            normal: {
                color: "#00acea"
            }
        },
        data: datas
    }]
};