Echarts

177 阅读1分钟

bootcdn 的 Echarts

Echarts

  • 无 webpack/parcel
// 导入 Echarts
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script>
  • 有 webpack/parcel
$ yarn add echarts
$ yarn add --dev  @types/echarts
import echarts from 'echarts';
// 或
var echarts = require('echarts')
  • 柱状图例子:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>ECharts</title>
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="echarts.js"></script>
  </head>
  <body>
    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('main'));

      // 指定图表的配置项和数据
      var option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
          data: ['销量']
        },
        xAxis: {
          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
          {
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
          }
        ]
      };

      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    </script>
  </body>
</html>

更改 Echarts 外观

直接在第二个参数添加

var echarts = require('echarts')

const main = document.getElementById('main')

// 基于准备好的dom,初始化echarts实例, 增加 'dark' 参数
// 可选的参数有: dark、light、default
var myChart = echarts.init(main, 'dark');

Echarts 手册

更新 Echarts 数据

展示 loading

myChart.showLoading()   // 需要加载 loading 的地方
myChart.hideLoading()   // 需要结束 loading 的地方

阻止未加载完的多次点击事件

let isLoading = false   // 设置 loading值 为 false
loadMoreButton.addEventListener('click', () => {
    if(isLoading === true){return}   // 判断是否loading开始
    myChart.showLoading()   // loading 开始
    isLoading = true;       // 设置 loading值 为 true
    setTimeout(()=>{
        const key = createKey();
        const value = createValue();
        xData = [...xData, key]
        values = [...values, value]
        myChart.setOption({
            xAxis: {
                data: xData
            },
            series: {
                data: values
            }
        })
        myChart.hideLoading()   // loading 结束
        isLoading = false       // 设置 loading值 为 false
    },3000)
})

移动端适配

常规技巧

  • meta:viewport 抄淘宝手机版
  • 用 JS 获取屏幕宽度设置在 div 上
  • 设定宽高比
const width = document.documentElement.clientWidth
main.style.width = `${width}px`
main.style.height = `${width*1.2}px`

Echarts 提供的功能

  • baseOption + media
myChart.setOption({
    baseOption: {                            // 原始数据
        title: {
            show: true,
            text: 'ECharts 入门示例',
            right: 20,
        },
        tooltip: {
            show: true,
        },
        legend: {
            data: ['销量']
        },
        xAxis: {
            data: xData
        },
        yAxis: {},
        series: [{
            lineStyle: {
                color: 'blue',
            },
            itemStyle: {
                borderWidth: 0
            },
            name: '销量',
            type: 'line',
            data: values
        }]
    },
    media: [                            // 适配手机要修改的数据
        {
            query: {
                maxWidth: 500
            },
            option: {
                series: [{
                    itemStyle: {
                        borderWidth: 30
                    },
                }]
            }
        }
    ]
});

数据可视化

  • 用 Echarts 做页面
    • 就是最初级的可视化
  • 深入
    • d3.js 值得研究

第三方组件

安装第三方组件

yarn add echarts vue-echarts