首页 > 其他分享 >【前端可视化】ECharts中国地图+散点图demo

【前端可视化】ECharts中国地图+散点图demo

时间:2023-04-24 10:11:47浏览次数:39  
标签:name demo 地图 散点图 value itemStyle var data ECharts

image

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="main" style="height: 400px"></div>
    <script src="../libs/echarts-5.3.3.js"></script>
    <!-- 
    1.导入了一个中国的 geo json
    window.china_geojson = {}
  -->
    <script src="./geojson/china_geojson.js"></script>
    <script>
      window.onload = function () {
        let mapName = '中国';
        // 2.注册一下中国地图的 geo json ( 需要在setOption之前调用 )
        echarts.registerMap(mapName, { geoJSON: china_geojson });

        let myChart = echarts.init(document.getElementById('main'));

        var data = [
          { name: '北京', value: 199 },
          { name: '天津', value: 42 },
          { name: '河北', value: 102 },
          { name: '山西', value: 81 },
          { name: '内蒙古', value: 47 },
          { name: '辽宁', value: 67 },
          { name: '吉林', value: 82 },
          { name: '黑龙江', value: 123 },
          { name: '上海', value: 154 },
          { name: '江苏', value: 102 },
          { name: '浙江', value: 114 },
          { name: '安徽', value: 109 },
          { name: '福建', value: 116 },
          { name: '江西', value: 91 },
          { name: '山东', value: 119 },
          { name: '河南', value: 137 },
          { name: '湖北', value: 116 },
          { name: '湖南', value: 114 },
          { name: '重庆', value: 101 },
          { name: '四川', value: 125 },
          { name: '贵州', value: 62 },
          { name: '云南', value: 83 },
          { name: '西藏', value: 9 },
          { name: '陕西', value: 80 },
          { name: '甘肃', value: 56 },
          { name: '青海', value: 10 },
          { name: '宁夏', value: 18 },
          { name: '新疆', value: 120 },
          { name: '广东', value: 193 },
          { name: '广西', value: 59 },
          { name: '海南', value: 14 },
        ];

        var geoCoordMap = {};
        /*获取地图数据*/
        myChart.showLoading();
        // console.log(echarts.getMap(mapName));

        // 1.先拿到地图的 geo json 对象
        var mapFeatures = echarts.getMap(mapName).geoJson.features;
        mapFeatures.forEach(function (v) {
          // 地区名称
          var name = v.properties.name;
          // 地区经纬度
          geoCoordMap[name] = v.properties.cp;
        });
        myChart.hideLoading();
        console.log('data=>', data);
        console.log('geoCoordMap=>', geoCoordMap);

        var convertData = function (data) {
          var res = [];
          for (var i = 0; i < data.length; i++) {
            var geoCoord = geoCoordMap[data[i].name];
            if (geoCoord) {
              res.push({
                name: data[i].name,
                value: [...geoCoord, data[i].value],
              });
            }
          }
          console.log('res=>', res);
          return res;
        };

        // 2.指定图表的配置项和数据
        var option = {
          tooltip: {}, // 提示框

          // visualMap: {  // 视觉映射组件
          //   left: "20%",
          //   seriesIndex: [0],
          //   inRange: {
          //     color: ["#04387b", "#467bc0"], // 蓝绿
          //   },
          // },

          geo: {
            // 注册一个地理坐标系组件( 给散点图用 )
            map: '中国',
            roam: false,
            label: { show: false },
            aspectScale: 0.75, // 缩放地图
            itemStyle: {
              areaColor: '#023677',
              borderColor: '#1180c7',
            },
            emphasis: {
              itemStyle: { areaColor: '#4499d0' },
              label: { color: 'white' },
            },
          },
          series: [
            {
              name: '中国地图',
              type: 'map',
              map: '中国',
              data, // 给地图填充数据

              // 地图样式
              itemStyle: {
                areaColor: '#023677',
                borderColor: '#1180c7',
              },
              emphasis: {
                itemStyle: { areaColor: '#4499d0' },
                label: { color: 'white' },
              },
              select: {
                label: { color: 'white' },
                itemStyle: { areaColor: '#4499d0' },
              },
              // 地图样式
            },

            {
              name: '散点图充电桩',
              type: 'effectScatter',

              // 散点图使用的坐标系: geo定义的坐标系组件
              geoIndex: 0,
              coordinateSystem: 'geo', // 使用地理坐标系,通过 geoIndex 指定相应的地理坐标系组件。

              data: convertData(data),

              symbolSize: function (val) {
                return val[2] / 10;
              },

              itemStyle: {
                color: 'yellow',
                shadowBlur: 10,
                shadowColor: 'yellow',
              },
              tooltip: {
                show: true,
                trigger: 'item',
                formatter: function (params) {
                  console.log(params);
                  var data = params.data;
                  return `${params.seriesName} <div style="margin:5px 0px;"/> ${data.name} ${data.value[2]}`;
                },
              },
            },
          ],
        };

        myChart.setOption(option);
      };
    </script>
  </body>
</html>

标签:name,demo,地图,散点图,value,itemStyle,var,data,ECharts
From: https://www.cnblogs.com/wx980416/p/17348576.html

相关文章

  • ai问答:使使用 Vue3 组合式API 和 TypeScript 父子组件demo
    这是一个使用Vue3组合式API和TypeScript的简单父子组件示例父组件Parent.vue:<template><div><p>{{msg}}</p><Child/></div></template><scriptlang="ts">import{ref}from'vue'import......
  • echarts 更改背景
    遇到一个问题很有意思记录一下:需求如下:使用echarts的树形图结构,更改背景颜色为环形透明状,具体图形如下思路:使用echarts提供的color更改背景颜色结果:发现此属性不生效,暂未找到原因使用backgroundColor更改渐变色背景结果:该属性不支持渐变色修改直接......
  • ai问答:使用 Vue3 组合式API 和 TypeScript 封装 echarts 折线图
    <template><divref="chart"style="height:500px;"></div></template><scriptlang="ts">import{ref,onMounted,watch}from'vue'import*asechartsfrom'echarts'e......
  • 给echarts添加点击事件
    1、在echarts内写上myChart.off('click')//防止多次触发,在给ehcart绑定事件时,要先写上此代码。myChart.on('click',(params)=>{   console.log(params) }) ......
  • python matplotlib 散点图的拟合直线的简单示例
     #samplepointsX=[0,5,10,15,20]Y=[0,7,10,13,20]#solveforaandbdefbest_fit(X,Y):xbar=sum(X)/len(X)ybar=sum(Y)/len(Y)n=len(X)#orlen(Y)numer=sum([xi*yiforxi,yiinzip(X,Y)])-n*xbar*y......
  • hyperf3搭建grpc demo
    搭建环境如果是linux因为默认版本的gcc是4.8.5编译安装grpc失败,必须升级gcc的版本可以参考《php安装grpc扩展》。gcc重新编译比较耗时所以还是比较建议用dockerDockerfileFROMphp:8.1#安装必要的工具和依赖RUNapt-getupdate\&&apt-getinstall-y--no-insta......
  • 【前端可视化】ECharts 实现响应式图表
    响应式图片的实现步骤:1.图表只设置高度,宽度设置为100%或不设置。2.监听窗口的resize事件,即监听窗口尺寸的变化(需节流)。3.当窗口大小改变时,然后调用echartsInstance.resize改变图表的大小。另外需要注意的是:在容器节点被销毁时,可以调用echartsInstance.dispose以销毁e......
  • obd demo快速部署单副本oceanbase(在线)
    资源要求:可用内存不少于8G安装目录空间不少于50G(默认安装在当前安装用户的家目录下) 1.什么是obd?odb是oceanbase社区版部署工具oceanbasedeployer的简称,通过obd可以快速完成oceanbaseclusterr的部署。不传入配置文件的情况下,在单机通过执行obddemo可以快速部署oceanba......
  • echarts相关问题
    解决echarts下钻地图,在平移和缩放后,下钻到下一级时生成的地图不在容器中间,会跑到容器外面去。 myChart.setOption(option,true)问题:echart地图三级下钻地图在平移和缩放后,点击到省,由于中心点的偏移,省跑到容器以外的地方去了,导致新生成的地图看不见。解决方法:后来发现,是重新绘制......
  • echarts柱状图横(x)轴文字显示不全,一招解决
    柱状图底部X轴文字过长时,将会出现文字显示不全的问题,这是echarts为了美观默认的设置现在我们把文章倾斜旋转点角度即可全部显示  以下是代码 scale(){varchartDom=document.getElementById("twenty");varmyChart=this.$echarts.init(chartDom);......