echarts中国地图根据数据对省份渲染不同的颜色

完整代码

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>echarts中国地图</title>
    <style>
        .centerItem {
            width: 856px;
            height: 640px;
            background-color: #fff;
            margin: 110px auto 0 auto;
        }

        .big {
            width: 100px;
            height: 100px;
            background: rgba(18, 139, 237, 1);
            /* background:rgba(71,169,241,1);                
            background:rgba(165,216,246,1);
            background:rgba(196,237,249,1); */
        }
    </style>
</head>

<body>
    <!-- 中国地图展示 -->
    <div id="mapBox" class="centerItem"></div>
    <!-- <div class="big"></div> -->
    <!-- 引入相关文件 -->
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <!-- 引入 ECharts 文件 -->
    <script src="https://cdn.bootcss.com/echarts/4.4.0-rc.1/echarts-en.js"></script>
    <script src="./china.js"></script>

    <script>
        // 基于准备好的dom,初始化echarts实例
        var mapBoxEchart = echarts.init(document.getElementById('mapBox'));
        var num = Math.random(),
            data = [
                { name: '北京', selected: false, value: 1 },
                { name: '天津', selected: false, value: 2 },
                { name: '上海', selected: false, value: 3 },
                { name: '重庆', selected: false, value: 4 },
                { name: '河北', selected: false, value: 5 },
                { name: '河南', selected: false, value: 6 },
                { name: '云南', selected: false, value: 7 },
                { name: '辽宁', selected: false, value: 8 },
                { name: '黑龙江', selected: false, value: 9 },
                { name: '湖南', selected: false, value: 10 },
                { name: '安徽', selected: false, value: 11 },
                { name: '山东', selected: false, value: 12 },
                { name: '新疆', selected: false, value: 13 },
                { name: '江苏', selected: false, value: 14 },
                { name: '浙江', selected: false, value: 15 },
                { name: '江西', selected: false, value: 16 },
                { name: '湖北', selected: false, value: 17 },
                { name: '广西', selected: false, value: 18 },
                { name: '甘肃', selected: false, value: 19 },
                { name: '山西', selected: false, value: 20 },
                { name: '内蒙古', selected: false, value: 21 },
                { name: '陕西', selected: false, value: 22 },
                { name: '吉林', selected: false, value: 23 },
                { name: '福建', selected: false, value: 24 },
                { name: '贵州', selected: false, value: 25 },
                { name: '广东', selected: false, value: 26 },
                { name: '青海', selected: false, value: 27 },
                { name: '西藏', selected: false, value: 28 },
                { name: '四川', selected: false, value: 29 },
                { name: '宁夏', selected: false, value: 30 },
                { name: '海南', selected: false, value: 31 },
                { name: '台湾', selected: false, value: 32 },
                { name: '香港', selected: false, value: 33 },
                { name: '澳门', selected: false, value: 34 }
            ],
            dataColor = {
                x: '-1000 px', //图例横轴位置
                y: '-1000 px', //图例纵轴位置
                splitList: [
                    { start: 1, end: 1, label: '北京', color: '#cfc5de' },
                    { start: 2, end: 2, label: '天津', color: '#f1ebd1' },
                    { start: 3, end: 3, label: '上海', color: '#feffdb' },
                    { start: 4, end: 4, label: '重庆', color: '#e0cee4' },
                    { start: 5, end: 5, label: '河北', color: '#fde8cd' },
                    { start: 6, end: 6, label: '河南', color: '#e4f1d7' },
                    { start: 7, end: 7, label: '云南', color: '#fffed7' },
                    { start: 8, end: 8, label: '辽宁', color: '#e4f1d7' },
                    { start: 9, end: 9, label: '黑龙江', color: '#e4f1d7' },
                    { start: 10, end: 10, label: '湖南', color: '#fffed7' },
                    { start: 11, end: 11, label: '安徽', color: '#fffed8' },
                    { start: 12, end: 12, label: '山东', color: '#dccee7' },
                    { start: 13, end: 13, label: '新疆', color: '#fffed7' },
                    { start: 14, end: 14, label: '江苏', color: '#fce8cd' },
                    { start: 15, end: 15, label: '浙江', color: '#ddceeb' },
                    { start: 16, end: 16, label: '江西', color: '#e4f1d3' },
                    { start: 17, end: 17, label: '湖北', color: '#fde8cd' },
                    { start: 18, end: 18, label: '广西', color: '#fde8cd' },
                    { start: 19, end: 19, label: '甘肃', color: '#fde8cd' },
                    { start: 20, end: 20, label: '山西', color: '#fffdd6' },
                    { start: 21, end: 21, label: '内蒙古', color: '#ddcfe6' },
                    { start: 22, end: 22, label: '陕西', color: '#fad8e9' },
                    { start: 23, end: 23, label: '吉林', color: '#fce8cd' },
                    { start: 24, end: 24, label: '福建', color: '#fad8e8' },
                    { start: 25, end: 25, label: '贵州', color: '#fad8e8' },
                    { start: 26, end: 26, label: '广东', color: '#ddcfe8' },
                    { start: 27, end: 27, label: '青海', color: '#fad8e9' },
                    { start: 28, end: 28, label: '西藏', color: '#ddcfe6' },
                    { start: 29, end: 29, label: '四川', color: '#e4f1d5' },
                    { start: 30, end: 30, label: '宁夏', color: '#fefcd5' },
                    { start: 31, end: 31, label: '海南', color: '#fad8e9' },
                    { start: 32, end: 32, label: '台湾', color: '#fce8cd' },
                    { start: 33, end: 33, label: '香港', color: '#dc9bbb' },
                    { start: 34, end: 34, label: '澳门', color: '#e0f7cc' }
                ]
            };
        //从数组中获取最大值和最小值
        var dataValue = [];
        data.forEach(e => {
            dataValue.push(e.value)
        });
        var max = Math.max.apply(null, dataValue),//数据最大值
            min = Math.min.apply(null, dataValue),//数据最小值
            min_max = max - min;//极差
        var R = 178,//色值差
            G = 98,
            B = 12,
            R_min = 18,
            G_min = 139,
            B_min = 237;
        dataColor.splitList.forEach(e => {
            var RED = (R / min_max * e.start) + R_min,
                GREEN = (G / min_max * e.start) + G_min,
                BLUE = (B / min_max * e.start) + B_min;
            e.color = "rgb(" + RED + ',' + GREEN + ',' + BLUE + ")";
        });
        // 指定相关的配置项和数据
        var mapBoxOption = {
            series: [{
                type: 'map',
                mapType: 'china',
                label: {
                    normal: {
                        show: false, //显示省份标签
                        textStyle: {
                            color: "#fff"
                        } //省份标签字体颜色
                    }
                },
                aspectScale: 0.75,
                zoom: 1.2,
                itemStyle: {
                    normal: {
                        borderWidth: .5, //区域边框宽度
                        borderColor: '#009fe8', //区域边框颜色
                        areaColor: "#ffefd5", //区域颜色
                    }
                },
                data: data //各省地图颜色数据依赖value
            }],
            dataRange: dataColor, //各省地图颜色;start:值域开始值;end:值域结束值;label:图例名称;color:自定义颜色值;
        };
        // 使用制定的配置项和数据显示图表
        mapBoxEchart.setOption(mapBoxOption);
        // echart图表自适应
        window.addEventListener("resize", function () {
            mapBoxEchart.resize();
        });
    </script>

</body>

</html>

效果图

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值