主頁 > 前端設計 > 快速上手ECharts,讓你的資料不再冷冰!

快速上手ECharts,讓你的資料不再冷冰!

2021-10-22 08:08:04 前端設計

前言

這次博主給大家分享一個既好用又能快速上手的資料可視化庫——ECharts.

先來給大家看看它所能呈現出來的效果,你們一定會震撼的!

當然不只是讓你們光震撼的,相信看完我的博客,你們每個人都能學會了!

ECharts 使用五步曲?

👉步驟1:下載并引入 echarts.js檔案—————————>圖表依賴這個 js庫

👉步驟2: 準備一個具備大小的DOM容器———————>生成的圖表會放入這個容器

👉步驟3: 初始化 echarts實體物件——————————>實體化 echarts物件

👉步驟4: 指定配置項和資料(option)————————>根據具體需求修改配置選項

👉步驟5: 將配置項設定給 echarts實體物件——————>讓 echarts物件根據修改好的配置生效

接下來我們來詳細講每個步驟

1. 首先在官網選擇一個版本下載

官網地址:Apache ECharts

2. 引入 ECharts

 <script src="echarts.min.js"></script>

3. 準備一個具備大小的容器

<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>
    <script src="echarts.min.js"></script>
    <style>
        .box {
            width: 500px;
            height: 500px;
            background-color: rgb(165, 204, 223);
        }
    </style>
</head>
<body>
    <!-- 容器盒子 -->
    <div class="box">
    </div>
</body>

4. 初始化 echarts 實體物件(準備作業)

<script>
        var myChart = echarts.init(document.querySelector('.box'));
</script>

5. 將圖表放到準備的容器中

① 先去官網的 示例 中選擇你要的圖表(這里我選了一個餅圖)

② 復制它的代碼到我們的js中,并將配置項設定給 echarts實體物件

 <script>
    var myChart = echarts.init(document.querySelector('.box'));
         // 指定圖表的配置項和資料
    var  option = {
    tooltip: {
      trigger: 'item'
    },
    legend: {
      top: '5%',
      left: 'center'
    },
    series: [
      {
        name: 'Access From',
        type: 'pie',
        radius: ['40%', '70%'],
        avoidLabelOverlap: false,
        itemStyle: {
        borderRadius: 10,
        borderColor: '#fff',
        borderWidth: 2
      },
      label: {
        show: false,
        position: 'center'
      },
      emphasis: {
        label: {
          show: true,
          fontSize: '40',
          fontWeight: 'bold'
        }
      },
      labelLine: {
        show: false
      },
      data: [
        { value: 1048, name: 'Search Engine' },
        { value: 735, name: 'Direct' },
        { value: 580, name: 'Email' },
        { value: 484, name: 'Union Ads' },
        { value: 300, name: 'Video Ads' }
      ]
    }
  ]
};
      myChart.setOption(option);
    </script>

效果如下:

千萬不要忘記要把我們的配置項(option)設定給 echarts 實體物件!!!


echarts的使用步驟👆到此就講解完啦,下面來說一些echarts常用的相關配置👇


1. ECharts 要熟悉的相關配置

title標題組件
tooltip提示框組件
legend圖例組件
toolbox工具列
grid直角坐標系內繪圖網格
xAxis直角坐標系 grid 中的 x 軸
yAxis直角坐標系 grid 中的 y 軸
series系列串列,每個系列通過 type 決定自己的圖表型別(什么型別的圖表)
color調色盤顏色串列

可能光看個圖表你們還是不知道什么代表的是哪塊區域的內容,下面的圖片可以幫助你理解

當然這些只是冰山一角,不過大家不要擔心,如果后面遇到不認識的可以去這里查找噢!👇


最后放幾個我在專案中做到的圖表,如果你們也要繪制類似圖表,那就可以白嫖啦?


(直接上js部分了,要引入jQuery.min.js,還有不要忘記自己加個盒子喲~)

1. 各省餅狀點位分布圖

效果展示:

代碼展示:

// 點位分布統計
(function () {
    var myChart = echarts.init(document.querySelector(".pie"));
    option = {
 
        tooltip: {
            trigger: 'item',
            formatter: '{a} <br/>{b} : {c} ({d}%)'
        },
        color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff'],
        series: [
            {
                name: '點位統計',
                type: 'pie',
                radius: ["10%", "60%"],
                center: ['50%', '50%'],
                roseType: 'radius',
                itemStyle: {
                    borderRadius: 5
                },
                data: [
                    { value: 20, name: '云南' },
                    { value: 26, name: '北京' },
                    { value: 24, name: '山東' },
                    { value: 25, name: '河北' },
                    { value: 20, name: '江蘇' },
                    { value: 25, name: '浙江' },
                    { value: 30, name: '四川' },
                    { value: 42, name: '湖北' }
                ],
                label: {
                    fontSize: 10
                },
                labelLine: {
                    length: 6,
                    length2: 8
                }
            }
        ]
    };
    myChart.setOption(option);
    // 當我們瀏覽器縮放的時候,圖表也等比例縮放
    window.addEventListener("resize", function () {
        myChart.resize();
    })
})();

2. 全國用戶總量統計柱狀圖

效果展示:

代碼展示:

// 全國用戶總量統計
(function () {
  var item = {
    name: "",
    value: 1200,
    //修改當前柱形的樣式
    itemStyle: {
      color: "#254065"
    },
    // 滑鼠放到柱子上不想高亮顯示,把顏色改成一樣,原先什么顏色,滑鼠放上去后就是什么顏色
    emphasis: {
      itemStyle: {
        color: "#254065"
      }
    },
    // 滑鼠經過柱子不顯示提示框組件
    tooltip: {
      extraCssText: "opacity: 0"
    }
  }
    var myChart = echarts.init(document.querySelector(".bar"));
    option = {
        color: new echarts.graphic.LinearGradient(
            //(x1,y2)點到點(x2,y2)之間進行漸變
            0, 0, 0, 1,
            [
                { offset: 0, color: '#00fffb' }, // 0 起始顏色
                { offset: 1, color: '#0061ce' }  // 1 結束顏色
            ]
        ),
        tooltip: {
          trigger: 'item'
        },
      grid: {
          top:'3%',
          left: '0%',
          right: '3%',
          bottom: '3%',
          //容器左邊刻度標簽
          containLabel: true,
          show: true,  //網格線
          borderColor: "rgba(0,240,255,0.3)"   //網格線顏色
        },
        xAxis: [
          {
            type: 'category',
            data: ['上海', '廣州', '北京', '深圳', '合肥','','......', '','杭州','廈門','濟南','成都', '重慶'],
            axisTick: {
              // 讓x軸標簽在刻度中間顯示
              alignWithLabel: false,
              // 把x軸刻度隱藏起來,y軸不變
              show: false
            },
            axisLabel: {
              // 設定x軸的字體顏色
              color: "#4c9bfd",
              fontSize: 10
            },
            axisLine: {
              // 設定 x軸的橫線顏色
              lineStyle: {
                color: "rgba(0,240,255,0.3)"
              }
            }
          }
        ],
        yAxis: [
          {
            type: 'value',
            axisTick: {
              // 讓x軸標簽在刻度中間顯示
              alignWithLabel: false,
              // 把x軸刻度隱藏起來,y軸不變
              show: false
            },
            axisLabel: {
              // 設定x軸的字體顏色
              color: "#4c9bfd"
            },
            axisLine: {
              // 設定 x軸的橫線顏色
              lineStyle: {
                color: "rgba(0,240,255,0.3)"
              }
            },
            // y軸分割線的顏色樣式
            splitLine: {
              lineStyle: {
                color: "rgba(0,240,255,0.3)"
              }
            }
          }
        ],
        series: [
          {
            name: 'Direct',
            type: 'bar',
            barWidth: '60%',
            data: [2100, 1900, 1700, 1560, 1400, item,item,item,900,750,600,480,240]
          }
        ]
    };
  myChart.setOption(option);
  window.addEventListener("resize", function () {
    myChart.resize();
  });
})();

3. 渠道分布圖

效果展示:

代碼展示:

// 銷售渠道模塊
(function () {
  var myChart = echarts.init(document.querySelector("#radar"));
  var option = {
    tooltip: {
      show: true,
      // 控制提示框組件的顯示位置
      position: ['60%', '10%']
    },
    radar: {
      indicator: [
        { name: '機場', max: 100 },
        { name: '商場', max: 100 },
        { name: '火車站', max: 100 },
        { name: '汽車站', max: 100 },
        { name: '地鐵', max: 100 }
      ],
      radius: "60%",
      shape: 'circle',
      // 分隔的段數
      splitNumber: 4,
      name: {
        //修改雷達圖文字的顏色
        textStyle: {
          color: "#4c9bfd",
          fontSize: 8
        }
      },
       
      axisName: {
        color: 'rgb(238, 197, 102)'
      },
      // 分隔圓圈線條的樣式
      splitLine: {
        lineStyle: {
          color: "rgba(255,255,255,0.5)"
        }
      },
      splitArea: {
        show: false
      },
      // 坐標軸的線修改為白色把透明
      axisLine: {
        lineStyle: {
          color: 'rgba(255, 255, 255, 0.5)'
        }
      }
    },
    series: [
      {
        name: 'Beijing',
        type: 'radar',
        // 填充區域的線條顏色
        lineStyle: {
          width: 1,
          opacity: 0.5,
          color: '#fff'
        },
        data: [[90, 19, 56, 11, 34]],
        // 設定圖形標記(拐點),還可以取值'rect'方塊,'arrow'三角等
        symbol: 'circle',
        // 拐點的大小
        symbolSize: 3,
        // 設定小圓點的顏色
        itemStyle: {
          color: '#fff'
        },
        // 在小圓點上顯示相關資料
        label: {
          show: true,
          color: '#fff',
          fontSize: 10
        },
        // 修飾我們區域填充的背景顏色
        areaStyle: {
          color: 'rgba(238,197,102,0.6)'
        }
      }
    ]
  };
  myChart.setOption(option);
  window.addEventListener('resize', function () {
    myChart.resize();
  })
})();

4. 半圓形餅形圖設定方式

效果展示:

(中間的75%是用定位定在里面的)

代碼展示:

//半圓形餅形圖設定方式
(function () {
  var myChart = echarts.init(document.querySelector(".gauge"));
  var option = {
    series: [
      {
        name: '銷售進度',
        type: 'pie',
        radius: ['130%', '150%'],
        // 移動圖示位置,套住 75%
        center: ['48%','80%'],
        labelLine: {
          show: false
        },
        // 餅形圖的起始角度為 180度,而不是旋轉角度,
        // 支持范圍[0,360]
        startAngle: 180,
        // 滑鼠經過不放大
        hoverOffset: 0,
        data: [
          {
            value: 100,
            itemStyle: {
              //顏色漸變 #00c9e0->#005fc1
              color: new echarts.graphic.LinearGradient(
                0, 0, 0, 1, [
                  { offset: 0, color: "#00c9e0" }, //0 起始顏色
                  { offset: 1, color: "#005fc1" } //1 結束顏色
                ]
              )
            }
          },
          { value: 100, itemStyle: {color: '#12274d'}},
          {
            value: 200,
            itemStyle: {
              color: "transparent"
            }
          }
        ]
      }
    ]
  };
  myChart.setOption(option);
  window.addEventListener("resize", function () {
    myChart.resize();
  })
})();

5. 銷售統計模塊 (圖表搭配定時器使用)

效果展示:

代碼展示:

// 銷售統計模塊
(function () {
  //設定四個資料
  var data = {
    year: [
      [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
      [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
      
    ],
    quarter: [
      [23, 75, 12, 97, 21, 67, 98, 21, 43, 64, 76, 38],
      [43, 31, 65, 23, 78, 21, 82, 64, 43, 60, 19, 34]
      
    ],
    month: [
      [34, 87, 32, 76, 98, 12, 32, 87, 39, 36, 29, 36],
      [56, 43, 98, 21, 56, 87, 43, 12, 43, 54, 12, 98]
      
    ],
    week: [
      [43, 73, 62, 54, 91, 54, 84, 43, 86, 43, 54, 53],
      [32, 54, 34, 87, 32, 45, 62, 68, 93, 54, 54, 24]
      
    ]
  }
  var myChart = echarts.init(document.querySelector(".line"));
  option = {
    color: ['#00f2f1', '#ed3f35'],
    tooltip: {
      trigger: 'axis'
    },
    legend: {
      // 距離容器10%
      right: "10%",
      //修飾圖例文字的顏色
      textStyle: {
        color: "#4c9bfd"
      },
      //如果 series里面設定了 name,此時圖例組件的 data可以省略
      // data: ['預期銷售額', '實際銷售額']
    },
    grid: {
      top: '20%',
      left: '3%',
      right: '4%',
      bottom: '3%',
      show: true,
      borderColor: '#012f4a',
      containLabel: true
    },
   
    xAxis: {
      type: 'category',
      boundaryGap: false, //需不需要內邊距,如果是 true,則線不會貼著y軸開始
      data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
      axisTick: {
        show: false //去除刻度線
      },
      axisLabel: {
        color: "#4c9bfd", //文本顏色
        fontSize: 10
      },
      axisLine: {
        show: false //去除軸線
      }
    },
    yAxis: {
      type: 'value',
      axisTick: {
        show: false //去除刻度線
      },
      axisLabel: {
        color: "#4c9bfd" //文本顏色
      },
      splitLine: {
        lineStyle: {
          color: "#012f4a"  //分割線顏色
        }
      }
    },
    series: [
      {
        name: '預期銷售額',
        type: 'line',
        stack: 'Total',
        smooth: true,
        data: data.year[0]
      },
      {
        name: '實際銷售額',
        type: 'line',
        stack: 'Total',
        smooth: true,
        data: data.year[1]
      }
    ]
  };
  myChart.setOption(option);
  window.addEventListener("resize", function () {
    myChart.resize();
  });
  //切換
  $('.sales .caption').on('click', 'a', function () {
    //樣式
    index = $(this).index() - 1;
    $(this).addClass("active").siblings("a").removeClass("active");
    var currDate = data[this.dataset.type];
    option.series[0].data = currDate[0];
    option.series[1].data = currDate[1];
    // 重新配好的資料給實體物件
    myChart.setOption(option)
  })
  //自動切換
  var as = $(".sales .caption a");
  var index = 0;
  var timer = setInterval(function () {
    index++;
    if (index >= 4) {
      index = 0;
    }
    as.eq(index).click();
  }, 1000)
  //滑鼠進入停止定時器,離開,開啟定時器
  $(".sales").hover(function () {
    clearInterval(timer);
  }, function () {
    clearInterval(timer);
    timer = setInterval(function () {
      index++;
      if (index >= 4) {
        index = 0;
      }
      as.eq(index).click();
    }, 1000);
  })
})();

6. ECharts地圖的使用

(前提:還要再去官網下載并引入 china.js 檔案)

效果展示:

代碼展示:

(function () {
    var myChart = echarts.init(document.querySelector(".geo"));
    var geoCoordMap = {
        靈寶: [110.8945, 34.51682],
        韶關: [113.591544, 24.801322],
        洛陽: [112.434468, 34.663041],
        長治: [113.113556, 36.191112],
        宿州: [116.984084, 33.633891],
        信陽: [114.075031, 32.123274],
        蕪湖: [118.376451, 31.326319],
        景德鎮: [117.214664, 29.29256],
        吉安: [114.986373, 27.111699],
        九江: [115.992811, 29.712034],
        寧都: [116.01565, 26.47227],
        長汀: [116.35888, 25.82773],
        南昌: [115.892151, 28.676493],
        贛州: [114.940278, 25.85097],
        梅州: [116.117582, 24.299112],
        龍川: [115.26025, 24.10142],
        大埔: [116.69662, 24.35325],
        汕頭: [116.708463, 23.37102],
        南雄: [114.30966, 25.11706],
        廣州: [113.280637, 23.125178],
        寶安: [113.88311, 22.55371],
        陽江: [111.975107, 21.859222],
        桂平: [110.08105, 23.39339],
        信宜: [110.94647, 22.35351],
        欽州: [108.624175, 21.967127],
        海口: [110.33119, 20.031971],
        柳州: [109.411703, 24.314617],
        榕江: [108.52072, 25.92421],
        鳳山: [107.04892, 24.54215],
        韶光: [113.591544, 24.801322],
        賀州: [111.552056, 24.414141],
        郴州: [113.032067, 25.793589],
        邵陽: [111.46923, 27.237842],
        常德: [111.691347, 29.040225],
        恩施: [109.47942, 30.29502],
        重慶: [106.504962, 29.533155],
        惠州: [114.412599, 23.079404],
        龍巖: [117.02978, 25.091603],
        高雄: [120.311922, 22.620856],
        臺北: [121.56517, 25.037798],
        中山: [113.382391, 22.521113],
        廣元: [105.829757, 32.433668],
        成都: [104.065735, 30.659462],
        會理: [102.24539, 26.65627],
        憑祥: [106.75534, 22.10573],
    };
    
    var BJData = [
        [
            {
                name: '宿州',
            },
            {
                name: '蕪湖',
                value: 60,
            },
        ],
    
        [
            {
                name: '靈寶',
            },
            {
                name: '靈寶',
                value: 60,
            },
        ],
        [
            {
                name: '長治',
            },
            {
                name: '長治',
                value: 60,
            },
        ],
        [
            {
                name: '洛陽',
            },
            {
                name: '洛陽',
                value: 60,
            },
        ],
        [
            {
                name: '靈寶',
            },
            {
                name: '信陽',
                value: 60,
            },
        ],
        [
            {
                name: '長治',
            },
            {
                name: '宿州',
                value: 60,
            },
        ],
        [
            {
                name: '洛陽',
            },
            {
                name: '信陽',
                value: 60,
            },
        ],
        [
            {
                name: '信陽',
            },
            {
                name: '吉安',
                value: 60,
            },
        ],
    ];
    
    var SHData = [
        [
            {
                name: '南昌',
            },
            {
                name: '南昌',
                value: 60,
            },
        ],
    
        [
            {
                name: '信陽',
            },
            {
                name: '景德鎮',
                value: 60,
            },
        ],
    
        [
            {
                name: '蕪湖',
            },
            {
                name: '景德鎮',
                value: 60,
            },
        ],
    
        [
            {
                name: '景德鎮',
            },
            {
                name: '長汀',
                value: 60,
            },
        ],
    
        [
            {
                name: '南昌',
            },
            {
                name: '贛州',
                value: 60,
            },
        ],
    ];
    
    var GZData = [
        [
            {
                name: '吉安',
            },
            {
                name: '南雄',
                value: 60,
            },
        ],
        [
            {
                name: '寧都',
            },
            {
                name: '寧都',
                value: 60,
            },
        ],
        [
            {
                name: '南雄',
            },
            {
                name: '惠州',
                value: 60,
            },
        ],
        [
            {
                name: '贛州',
            },
            {
                name: '龍川',
                value: 60,
            },
        ],
        [
            {
                name: '寧都',
            },
            {
                name: '梅州',
                value: 60,
            },
        ],
        [
            {
                name: '長汀',
            },
            {
                name: '龍巖',
                value: 60,
            },
        ],
    ];
    
    var WJData = [
        [
            {
                name: '梅州',
            },
            {
                name: '汕頭',
                value: 60,
            },
        ],
        [
            {
                name: '汕頭',
            },
            {
                name: '高雄',
                value: 60,
            },
        ],
        [
            {
                name: '高雄',
            },
            {
                name: '臺北',
                value: 60,
            },
        ],
        [
            {
                name: '龍川',
            },
            {
                name: '寶安',
                value: 60,
            },
        ],
        [
            {
                name: '惠州',
            },
            {
                name: '廣州',
                value: 60,
            },
        ],
    
        [
            {
                name: '廣州',
            },
            {
                name: '桂平',
                value: 60,
            },
        ],
        [
            {
                name: '桂平',
            },
            {
                name: '柳州',
                value: 60,
            },
        ],
    
        [
            {
                name: '韶關',
            },
            {
                name: '韶關',
                value: 60,
            },
        ],
    
        [
            {
                name: '柳州',
            },
            {
                name: '榕江',
                value: 60,
            },
        ],
    
        [
            {
                name: '柳州',
            },
            {
                name: '鳳山',
                value: 60,
            },
        ],
    
        [
            {
                name: '惠州',
            },
            {
                name: '中山',
                value: 60,
            },
        ],
    
        [
            {
                name: '中山',
            },
            {
                name: '陽江',
                value: 60,
            },
        ],
    
        [
            {
                name: '韶關',
            },
            {
                name: '賀州',
                value: 60,
            },
        ],
    
        [
            {
                name: '韶關',
            },
            {
                name: '郴州',
                value: 60,
            },
        ],
    
        [
            {
                name: '郴州',
            },
            {
                name: '邵陽',
                value: 60,
            },
        ],
    
        [
            {
                name: '邵陽',
            },
            {
                name: '常德',
                value: 60,
            },
        ],
        [
            {
                name: '常德',
            },
            {
                name: '恩施',
                value: 60,
            },
        ],
        [
            {
                name: '恩施',
            },
            {
                name: '重慶',
                value: 60,
            },
        ],
        [
            {
                name: '重慶',
            },
            {
                name: '成都',
                value: 60,
            },
        ],
    
        [
            {
                name: '重慶',
            },
            {
                name: '廣元',
                value: 60,
            },
        ],
    
        [
            {
                name: '重慶',
            },
            {
                name: '會理',
                value: 60,
            },
        ],
    ];
    
    var JGData = [
        [
            {
                name: '中山',
            },
            {
                name: '信宜',
                value: 60,
            },
        ],
    
        [
            {
                name: '信宜',
            },
            {
                name: '欽州',
                value: 60,
            },
        ],
        [
            {
                name: '桂平',
            },
            {
                name: '憑祥',
                value: 60,
            },
        ],
        [
            {
                name: '信宜',
            },
            {
                name: '海口',
                value: 60,
            },
        ],
    ];
    
    var planePath =
        'path://M.6,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705';
    
    var convertData = function (data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var dataItem = data[i];
            var fromCoord = geoCoordMap[dataItem[0].name];
            var toCoord = geoCoordMap[dataItem[1].name];
            if (fromCoord && toCoord) {
                res.push([
                    {
                        coord: fromCoord,
                    },
                    {
                        coord: toCoord,
                    },
                ]);
            }
        }
        return res;
    };
    
    var color = ['#FF8888', ' #ffa022', '#a6c84c', '#3ed4ff', '	#E38EFF'];
    var series = [];
    [
        ['長治', BJData],
        ['景德鎮', SHData],
        ['寧都', GZData],
        ['汕頭', WJData],
        ['信宜', JGData],
    ].forEach(function (item, i) {
        series.push(
            {
                type: 'lines',
                zlevel: 1,
                effect: {
                    show: true,
                    period: 6,
                    trailLength: 0.7,
                    color: '#fff',
                    symbolSize: 3,
                },
                lineStyle: {
                    normal: {
                        color: color[i],
                        width: 0,
                        curveness: 0.2,
                    },
                },
    
                data: convertData(item[1]),
            },
            {
                type: 'lines',
                zlevel: 2,
                effect: {
                    show: true,
                    period: 6,
                    trailLength: 0,
                    symbol: planePath,
                    symbolSize: 15,
                },
                lineStyle: {
                    normal: {
                        color: color[i],
                        width: 1,
                        opacity: 0.4,
                        curveness: 0.2,
                    },
                },
    
                data: convertData(item[1]),
            },
            {
                type: 'lines',
                zlevel: 2,
                effect: {
                    show: true,
                    period: 6,
                    trailLength: 0,
                    symbol: planePath,
                    symbolSize: 15,
                },
                lineStyle: {
                    normal: {
                        color: color[i],
                        width: 1,
                        opacity: 0.4,
                        curveness: 0.2,
                    },
                },
    
                data: convertData(item[1]),
            },
            {
                type: 'lines',
                zlevel: 2,
                effect: {
                    show: true,
                    period: 6,
                    trailLength: 0,
                    symbol: planePath,
                    symbolSize: 15,
                },
                lineStyle: {
                    normal: {
                        color: color[i],
                        width: 1,
                        opacity: 0.4,
                        curveness: 0.2,
                    },
                },
    
                data: convertData(item[1]),
            },
            {
                type: 'effectScatter',
                coordinateSystem: 'geo',
                zlevel: 2,
                rippleEffect: {
                    brushType: 'stroke',
                },
                label: {
                    normal: {
                        show: true,
                        position: 'right',
                        formatter: '{b}',
                    },
                },
                symbolSize: function (val) {
                    return val[2] / 8;
                },
                itemStyle: {
                    normal: {
                        color: color[i],
                    },
                },
                data: item[1].map(function (dataItem) {
                    return {
                        name: dataItem[1].name,
                        value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]),
                    };
                }),
            }
        );
    });
    
    var option = {
        // backgroundColor: '#080a20',
        tooltip: {
            trigger: 'item',
        },
        legend: {
            orient: 'vertical',
            top: 'bottom',
            left: 'right',
            data: [],
            textStyle: {
                color: '#fff',
            },
            selectedMode: 'single',
        },
        geo: {
            map: 'china',
            zoom: 1.2,
            scaleLimit: {
                //控制滾輪縮放大小
                max: 8,
                min: 1,
            },
            label: {
                emphasis: {
                    show: false,
                },
            },
            roam: true,
            itemStyle: {
                normal: {
                    areaColor: '#142957',
                    borderColor: '#0692a4',
                },
                emphasis: {
                    areaColor: '#0b1c2d',
                },
            },
        },
        series: series,
    };
    
    myChart.setOption(option);
    window.addEventListener("resize", function () {
        myChart.resize();
    })
})()


這次的分享到這里就結束了,按照我說的步驟,自己動手試一試吧😊

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/330338.html

標籤:其他

上一篇:一張思維導圖入門React

下一篇:vue - 實作省市區的級聯選擇

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more