• 前端使用Echart实现动态图表


    ECharts

    ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。

    1.特性

    ECharts 包含了以下特性:

    • 丰富的可视化类型: 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
    • 多种数据格式无需转换直接使用: 内置的 dataset 属性(4.0+)支持直接传入包括二维表,key-value 等多种格式的数据源,此外还支持输入 TypedArray 格式的数据。
    • 千万数据的前端展现: 通过增量渲染技术(4.0+),配合各种细致的优化,ECharts 能够展现千万级的数据量。
    • 移动端优化: 针对移动端交互做了细致的优化,例如移动端小屏上适于用手指在坐标系中进行缩放、平移。 PC 端也可以用鼠标在图中进行缩放(用鼠标滚轮)、平移等。
    • 多渲染方案,跨平台使用: 支持以 Canvas、SVG(4.0+)、VML 的形式渲染图表。
    • 深度的交互式数据探索: 提供了 图例、视觉映射、数据区域缩放、tooltip、数据刷选等开箱即用的交互组件,可以对数据进行多维度数据筛取、视图缩放、展示细节等交互操作。
    • 多维数据的支持以及丰富的视觉编码手段: 对于传统的散点图等,传入的数据也可以是多个维度的。
    • 动态数据: 数据的改变驱动图表展现的改变。
    • 绚丽的特效: 针对线数据,点数据等地理数据的可视化提供了吸引眼球的特效。
    • 通过 GL 实现更多更强大绚丽的三维可视化: 在 VR,大屏场景里实现三维的可视化效果。
    • 无障碍访问(4.0+): 支持自动根据图表配置项智能生成描述,使得盲人可以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问!

    2.安装

    (1)下载的源代码

    也可以在 ECharts 的官网上直接下载更多丰富的版本,包含了不同主题跟语言,下载地址:https://echarts.apache.org/zh/download.html

    (2)使用 CDN 方法

    以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。

    • Staticfile CDN(国内) : https://cdn.staticfile.org/echarts/4.5.0/echarts.min.js
    • jsDelivr:https://cdn.jsdelivr.net/npm/echarts@4.5.0/dist/echarts.min.js。
    • cdnjs : https://cdnjs.cloudflare.com/ajax/libs/echarts/4.5.0/echarts.min.js
    <script src="https://cdn.staticfile.org/echarts/4.5.0/echarts.min.js"></script>
    
    • 1

    3.使用

    (1)导入echart.js
    <script src="https://cdn.staticfile.org/echarts/4.5.0/echarts.min.js"></script>
    
    • 1
    (2)为 ECharts 准备一个具备高宽的 DOM 容器
    <body>
        <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
        <div id="main" style="width: 600px;height:400px;"></div>
    </body>
    
    • 1
    • 2
    • 3
    • 4
    (3)设置配置信息
    ①ECharts 库使用 json 格式来配置
    echarts.init(document.querySelector('.box')).setOption(option);
    
    • 1

    这里 option 表示使用 json 数据格式的配置来绘制图表。

    ②option配置步骤

    option配置还可以从官网复制模板进行修改

    标题

    为图表配置标题:

    title: {
        text: '1-4月用户表'
    }
    
    • 1
    • 2
    • 3

    提示信息

    配置提示信息:

    tooltip: {
    	trigger: 'axis'// trigger 设置触发类型,默认数据触发,可选值:'item' ¦ 'axis'
    },
    
    • 1
    • 2
    • 3

    图例组件

    图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。

    legend: {
        // orient 设置布局方式,默认水平布局,可选值:'horizontal'(水平) ¦ 'vertical'(垂直)
        orient: 'horizontal',
        data: [{
            name: '系列1',
            // 强制设置图形为圆。
            icon: 'circle',
            // 设置文本为红色
            textStyle: {
                color: 'red'
            }
        }]
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    X 轴

    配置要在 X 轴显示的项:

    xAxis: {
        data: ["1月","2月","3月","4月"]
    }
    
    • 1
    • 2
    • 3

    Y 轴

    配置要在 Y 轴显示的项。

    yAxis: [
        {
            type: 'value',//数值轴
            axisLabel: {
            	formatter: '{value}'
            }
        }
    ],
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    系列列表

    每个系列通过 type 决定自己的图表类型:

    series: [{
        name: '销量',  // 系列名称
        type: 'bar',  // 系列图表类型
        symbol: 'circle',// 设置拐点为实心圆
        symbolSize: 5,// 设置折线上圆点大小
        data: [5, 20, 36, 10]  // 系列中的数据内容
    }]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    type值:

    • type: ‘bar’:柱状/条形图
    • type: ‘line’:折线/面积图
    • type: ‘pie’:饼图
    • type: ‘scatter’:散点(气泡)图
    • type: ‘effectScatter’:带有涟漪特效动画的散点(气泡)
    • type: ‘radar’:雷达图
    • type: ‘tree’:树型图
    • type: ‘treemap’:树型图
    • type: ‘sunburst’:旭日图
    • type: ‘boxplot’:箱形图
    • type: ‘candlestick’:K线图
    • type: ‘heatmap’:热力图
    • type: ‘map’:地图
    • type: ‘parallel’:平行坐标系的系列
    • type: ‘lines’:线图
    • type: ‘graph’:关系图
    • type: ‘sankey’:桑基图
    • type: ‘funnel’:漏斗图
    • type: ‘gauge’:仪表盘
    • type: ‘pictorialBar’:象形柱图
    • type: ‘themeRiver’:主题河流
    • type: ‘custom’:自定义系列

    4.代码

    function Echart() {
        // 基于准备好的dom,初始化echarts实例
    	let myChart=echarts.init(document.getElementById("admins_users_chart"));
        // 指定图表的配置项和数据,具体内容可以查看官网进行填写
        let option={
            
        };
        // 使用刚指定的配置项和数据显示图表
        myChart.setOption(option);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    LeetCode --- 1486. XOR Operation in an Array 解题报告
    PMO大会的主办方是PMO评论
    BUUCTF题解之[极客大挑战 2019]Havefun 1
    SourceTree在不使用SSH密钥的情况下连接远程仓库的方法(可进行远端拉取和推送)
    前端开发攻略---用原生JS在网页中也能实现文本转语音
    基于pig架构的OAuth2学习记录
    javaEE飞机航班信息查询网站系统
    Vue 框架基础 -router导航守卫
    Linux启动重启和停止Cron Crond服务
    【JS面试题】面试官问我:遍历一个数组用 for 和 forEach 哪个更快?
  • 原文地址:https://blog.csdn.net/qq_44732742/article/details/125523374