1.什么是数据可视化

1.1 数据可视化

  • 数据可视化主要目的:借助于图形化手段,清晰有效地传达与沟通信息。
  • 数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理。

1.2 数据可视化的场景
目前互联网公司通常有这么几大类的可视化需求:
通用报表
移动端图表
大屏可视化
图编辑&图分析
地理可视化

1.3 常见的数据可视化库

  • D3.js 目前 Web 端评价最高的 Javascript 可视化工具库(入手难)
  • ECharts.js 百度出品的一个开源 Javascript 数据可视化库
  • Highcharts.js 国外的前端数据可视化库,非商用免费,被许多国外大公司所使用
  • AntV 蚂蚁金服全新一代数据可视化解决方案
  • 等等
    Highcharts 和 Echarts 就像是 Office 和 WPS 的关系

小结
数据可视化主要目的:
借助于图形化手段,清晰有效地传达与沟通信息
数据可视化主要作用:
数据可视化在我们互联网公司中经常用于通用数据报表,移动端图表,大屏可视化,图编辑等
数据可视化常见的库:
数据可视化库有很多,常用的是ECharts

2. ECharts

2.1Echarts简介
ECharts是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

官网地址:https://www.echartsjs.com/zh/index.html

2.2Echarts优点

  • 丰富的可视化类型
  • 多种数据格式支持
  • 流数据的支持
  • 移动端优化
  • 跨平台使用
  • 绚丽的特效
  • 详细的文档说明

3. ECharts的基本使用

3.1 ECharts 使用五步曲

步骤1:下载并引入echarts.js文件     =>>图表依赖这个js库
 步骤2:准备一个具备大小的DOM容器     =>>生成的图表会放入这个容器内
 步骤3:初始化echarts实例对象        =>>实例化echarts对象
 步骤4:指定配置项和数据option       =>>根据具体需求修改配置选项
 步骤5:将配置项设置给echarts实例对象 =>>让echarts对象根据修改好的配置生效

3.2 相关配置讲解

title:标题组件   
tooltip:提示框组件
legend:图例组件
toolbox: 工具栏
grid:直角坐标系内绘图网格
xAxis:直角坐标系 grid 中的 x 轴
yAxis:直角坐标系 grid 中的 y 轴
series: 系列列表。
color:调色盘颜色列表

实现数据可视化 实现数据可视化的目的_坐标轴


代码演示

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Echarts-配置项</title>
    <style>
        /* 记得使用id不要用div设置样式 不然会出现  tooltip提示框属性出错 bug:(框过大)*/
        #main {
            width: 700px;
            height: 400px;
            margin: 20px auto;
            border: 1px solid #ccc;
        }
    </style>
    <!-- 1.引入Echarts文件 -->
    <script src="./echarts.min.js"></script>
</head>

<body>
    <!-- 2.创建一个标签 id名为main -->
    <div id="main"></div>

    <script>
        // 3.创建一个Echarts实例
        let myChart = echarts.init(document.getElementById('main'));

        // 4.定义参数 柱状图
        option = {
            // 标题设置
            title: {
                text: '未来一周气温变化',   //text 主标题文本
                subtext: '纯属虚构'        //subtext副标题文本
            },
            // 提示框设置
            tooltip: {
                trigger: 'axis'     //trigger触发类型
                //'item' 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用 
                //'axis'坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
                //'none' 什么都不触发
            },
            // toolsbox工具栏设置
            toolbox: {
                show: true,   //是否显示工具栏组件
                feature: {    //各工具配置项
                    dataZoom: {
                        yAxisIndex: 'none'
                    },
                    dataView: { readOnly: false },
                    magicType: { type: ['line', 'bar'] },
                    restore: {},
                    saveAsImage: {}
                }
            },
            // legend图例设置
            legend: {
                data: ['最高气温', '最低气温']  //图例的数据数组
            },
            // xAxis x轴设置
            xAxis: {
                type: 'category',       // 坐标轴类型。
                // 'value'数值轴; 
                // 'category' 类目轴;
                // 'time' 时间轴  
                boundaryGap: false,     //坐标轴两边留白策略
                data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']  //类目数据
            },
            // yAxis y轴设置
            yAxis: {
                type: 'value',       // 坐标轴类型。  (一般y轴类型为value数据轴)
                axisLabel: {         // 坐标轴刻度标签的相关设置。
                    formatter: '{value} °C'
                }
            },
            // series 系列列表
            series: [
                {
                    name: '最高气温',
                    type: 'line',
                    data: [10, 11, 13, 11, 12, 12, 9],
                    markPoint: {
                        data: [
                            { type: 'max', name: '最大值' },
                            { type: 'min', name: '最小值' }
                        ]
                    },
                    markLine: {
                        data: [
                            { type: 'average', name: '平均值' }
                        ]
                    }
                },
                {
                    name: '最低气温',
                    type: 'line',
                    data: [1, -2, 2, 5, 3, 2, 0],
                    markPoint: {
                        data: [
                            { name: '周最低', value: -2, xAxis: 1, yAxis: -1.5 }
                        ]
                    },
                    markLine: {
                        data: [
                            { type: 'average', name: '平均值' },
                            [{
                                symbol: 'none',
                                x: '90%',
                                yAxis: 'max'
                            }, {
                                symbol: 'circle',
                                label: {
                                    position: 'start',
                                    formatter: '最大值'
                                },
                                type: 'max',
                                name: '最高点'
                            }]
                        ]
                    }
                }
            ]
        };
        // 4.使用 刚指定的配置项和数据  显示图表。
        myChart.setOption(option);

    </script>
</body>

</html>