Vue项目中使用ECharts的中国地图

准备

创建vue项目
安装依赖

npm install echarts --save

man.js

import echarts from 'echarts';
Vue.prototype.$echarts = echarts;

 

ECharts的图表需要在css指定width和height

方法一:直接引用

index.vue

<template>
  <div id="chart">  
<template>
<script>
// 引入china.js,使用中国地图必须要有
import "echarts/map/js/china.js"
export default {
    name: "index",
    components:{
      Head,
      Footers,
      ECharts
    },
    mounted(){
      this.MyMap();
    },
    methods: {
      MyMap() {
        // 1. 实例化对象
        let myMap = this.$echarts.init(document.getElementById('chart'));

        let mapData = [
          {name:"南海诸岛",value:0, count: 30},
          {name: '北京', value: 3, count: 30},
          {name: '天津', value: 5},
          {name: '上海', value: 6},
          {name: '重庆', value: 15},
          {name: '河北', value: 15},
          {name: '河南', value: 15},
          {name: '云南', value: 15},
          {name: '辽宁', value: 7},
          {name: '黑龙江', value: 5},
          {name: '湖南', value: 68},
          {name: '安徽', value: 34},
          {name: '山东', value: 34},
          {name: '新疆', value: 34},
          {name: '江苏', value: 34},
          {name: '浙江', value: 34},
          {name: '江西', value: 34},
          {name: '湖北', value: 34},
          {name: '广西', value: 34},
          {name: '甘肃', value: 34},
          {name: '山西', value: 34},
          {name: '内蒙古', value: 9},
          {name: '陕西', value: 16},
          {name: '吉林', value: 16},
          {name: '福建', value: 16},
          {name: '贵州', value: 16},
          {name: '广东', value: 43},
          {name: '青海', value: 43},
          {name: '西藏', value: 43},
          {name: '四川', value: 43},
          {name: '宁夏', value: 43},
          {name: '海南', value: 75},
          {name: '台湾', value: 75},
          {name: '香港', value: 75},
          {name: '澳门', value: 75}
        ];
        let map_option = {
          color: ["#8A3310", "#C64918", "#E55825", "#F2AD92", "#F9DCD1"],
          title: {
            x:'left'
          },
          tooltip: {
            trigger: 'item'
          },
          // 左侧导航

          visualMap: {
            show: false,
            x: '4%',
            y: 'bottom',
            textStyle: {
              fontSize: 8,
            },
            showLabel: 0,
            // text: ["高", "低"],
            splitList: [
              //{start: 0, end: 0},
              {start: 1, end: 9},
              {start: 10, end: 99},
              {start: 100, end: 999},
              {start: 1000, end: 9999},
              {start: 10000}
            ],
            color: ["#8A3310", "#C64918", "#E55825", "#F2AD92", "#F9DCD1"]
          },


          // 配置属性
          series: [{
            name: "累计确诊病例",
            type: "map",
            mapType: 'china',
            roam: false, //拖动和缩放
            data: mapData,
            itemStyle: {
              normal: {
                borderWidth: .5,   // 区域边框宽度
                borderColor: '#009fe8',  //区域边框颜色
                areaColor: '#ffefd5',   //区域颜色
              },
              // 鼠标滑过相关设置
              emphasis: {
                borderWidth: .5,   // 区域边框宽度
                borderColor: '#4b0082',  //区域边框颜色
                areaColor: '#ff8454',   //区域颜色
              }
            },
            label: {
              normal: {
                show: true,
                fontSize: 8,
              },
              emphasis: {
                show: true,
                fontSize: 8,
              }
            },
            left: '10%',
            width: '90%',
            height: '90%'
          }]
        };

        // 3. 把配置和数据给实例对象
        myMap.setOption(map_option);
      }
    }
  }
</script>

 

方法二:引入组件

index.vue

<template>
  <div>
    <ECharts />
  </div>
<template>
<script>
  import ECharts from '../../components/common/echarts'
  export default {
    name: "index",
    components:{
      ECharts
    },
  }
</script>

组件ECharts.vue

<template>
  <div class="map">
    <div id="chart"></div>
  </div>
</template>
<script>
  import "echarts/map/js/china.js"
  export default {
    name: "ECharts",
    components:{
    },
    mounted(){
      this.MyMap();
    },
    methods: {
      MyMap() {
        // 1. 实例化对象
        let myMap = this.$echarts.init(document.getElementById('chart'));
        // let myMap = echarts.init(document.querySelector(".map .chart"));

        let mapData = [
          {name:"南海诸岛",value:0, count: 30},
          {name: '北京', value: 3, count: 30},
          {name: '天津', value: 5},
          {name: '上海', value: 6},
          {name: '重庆', value: 15},
          {name: '河北', value: 15},
          {name: '河南', value: 15},
          {name: '云南', value: 15},
          {name: '辽宁', value: 7},
          {name: '黑龙江', value: 5},
          {name: '湖南', value: 68},
          {name: '安徽', value: 34},
          {name: '山东', value: 34},
          {name: '新疆', value: 34},
          {name: '江苏', value: 34},
          {name: '浙江', value: 34},
          {name: '江西', value: 34},
          {name: '湖北', value: 34},
          {name: '广西', value: 34},
          {name: '甘肃', value: 34},
          {name: '山西', value: 34},
          {name: '内蒙古', value: 9},
          {name: '陕西', value: 16},
          {name: '吉林', value: 16},
          {name: '福建', value: 16},
          {name: '贵州', value: 16},
          {name: '广东', value: 43},
          {name: '青海', value: 43},
          {name: '西藏', value: 43},
          {name: '四川', value: 43},
          {name: '宁夏', value: 43},
          {name: '海南', value: 75},
          {name: '台湾', value: 75},
          {name: '香港', value: 75},
          {name: '澳门', value: 75}
        ];
        let map_option = {
          color: ["#8A3310", "#C64918", "#E55825", "#F2AD92", "#F9DCD1"],
          title: {
            x:'left'
          },
          tooltip: {
            trigger: 'item'
          },
          // 左侧导航

          visualMap: {
            show: false,
            x: '4%',
            y: 'bottom',
            textStyle: {
              fontSize: 8,
            },
            showLabel: 0,
            // text: ["高", "低"],
            splitList: [
              //{start: 0, end: 0},
              {start: 1, end: 9},
              {start: 10, end: 99},
              {start: 100, end: 999},
              {start: 1000, end: 9999},
              {start: 10000}
            ],
            color: ["#8A3310", "#C64918", "#E55825", "#F2AD92", "#F9DCD1"]
          },


          // 配置属性
          series: [{
            name: "累计确诊病例",
            type: "map",
            mapType: 'china',
            roam: false, //拖动和缩放
            data: mapData,
            itemStyle: {
              normal: {
                borderWidth: .5,   // 区域边框宽度
                borderColor: '#009fe8',  //区域边框颜色
                areaColor: '#ffefd5',   //区域颜色
              },
              // 鼠标滑过相关设置
              emphasis: {
                borderWidth: .5,   // 区域边框宽度
                borderColor: '#4b0082',  //区域边框颜色
                areaColor: '#ff8454',   //区域颜色
              }
            },
            label: {
              normal: {
                show: true,
                fontSize: 8,
              },
              emphasis: {
                show: true,
                fontSize: 8,
              }
            },
            left: '10%',
            width: '90%',
            height: '90%'
          }]
        };

        // 3. 把配置和数据给实例对象
        myMap.setOption(map_option);
      }
    }
  }
</script>
<style scoped>
  #chart {
    width: 700px;
    height: 500px;
  }
</style>

 
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值