ECharts图形数据结构

1. 可视化面板介绍

  1. 应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据生产数据用户数据)下使用。
  2. 可视化图表来展示体现数据,让数据更加直观,数据特点更加突出。

2. Echarts-介绍

2.1 常见的数据可视化库:

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

2.2 ECharts是什么

  1. ECharts,一个使用 JavaScript 实现的开源可视化库,

  2. 可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),

  3. 底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

  4. 大白话:
    a. 是一个JS插件
    b. 性能好可流畅运行PC与移动设备
    c. 兼容主流浏览器
    d. 提供很多常用图表,且可定制
    e. 折线图、柱状图、散点图、饼图、K线图

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

3. Echarts使用

  1. 官方教程:五分钟上手ECharts
  2. 下载echarts https://github.com/apache/incubator-echarts/tree/4.5.0

3.1 使用步骤:

  1. 引入echarts.js 插件文件到 html 页面中

    <script src="./js/echarts.min.js">script>
    
  2. 准备一个具备大小的DOM容器

    <div id="main" style="width: 600px;height:400px;">div>
    
  3. 初始化echarts实例对象

    <script>
    	var myChart = echarts.init(document.getElementById('main'))
    </script>
    
  4. 指定配置项和数据(option)

    <script>
    	var option = {
           
     		xAxis: {
           
        		type: 'category',
        		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    	 	},
    		yAxis: {
           
       		 	type: 'value'
    		},
    	 	series: [{
           
        		data: [820, 932, 901, 934, 1290, 1330, 1320],
       			type: 'line'
    		}]
    	}
    </script>
    
  5. 将配置项设置给echarts实例对象

    <script>
       	myChart.setOption(option)
    </script>
    

4. Echarts的基础配置

需要了解的主要配置:series xAxis yAxis grid tooltip title legend color

  1. series
    系列列表,每个系列通过 type 决定自己的图表类型
    大白话:图标数据,指定什么类型的图标,可以多个图表重叠。

  2. xAxis
    直角坐标系 grid 中的 x 轴

  3. boundaryGap
    坐标轴两边留白策略 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。

  4. yAxis
    直角坐标系 grid 中的 y 轴

  5. grid
    直角坐标系内绘图网格。

  6. title
    标题组件

  7. tooltip
    提示框组件

  8. legend
    图例组件

  9. color
    调色盘颜色列表

  10. 数据堆叠,同个类目轴上系列配置相同的stack值后 后一个系列的值会在前一个系列的值上相加。

option = {
     
    // color设置我们线条的颜色 注意后面是个数组
    color: ['pink', 'red', 'green', 'skyblue'],
    // 设置图表的标题
    title: {
     
        text: '折线图堆叠123'
    },
    // 图表的提示框组件 
    tooltip: {
     
        // 触发方式
        trigger: 'axis'
    },
    // 图例组件
    legend: {
     
       // series里面有了 name值则 legend里面的data可以删掉
    },
    // 网格配置  grid可以控制线形图 柱状图 图表大小
    grid: {
     
        left: '3%',
        right: '4%',
        bottom: '3%',
        // 是否显示刻度标签 如果是true 就显示 否则反之
        containLabel: true
    },
    // 工具箱组件  可以另存为图片等功能
    toolbox: {
     
        feature: {
     
            saveAsImage: {
     }
        }
    },
    // 设置x轴的相关配置
    xAxis: {
     
        type: 'category',
        // 是否让我们的线条和坐标轴有缝隙
        boundaryGap: false,
        data: ['星期一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
     // 设置y轴的相关配置
    yAxis: {
     
        type: 'value'
    },
    // 系列图表配置 它决定着显示那种类型的图表
    series: [
        {
     
            name: '邮件营销',
            type: 'line',
           
            data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
     
            name: '联盟广告',
            type: 'line',

            data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
     
            name: '视频广告',
            type: 'line',
          
            data: [150, 232, 201, 154, 190, 330, 410]
        },
        {
     
            name: '直接访问',
            type: 'line',
          
            data: [320, 332, 301, 334, 390, 330, 320]
        }
    ]
}

5. 柱状图图表(两大步骤)

  1. 官网找到类似实例, 适当分析,并且引入到HTML页面中
  2. 根据需求定制图表
  3. 引入到html页面中
// 柱状图1模块
(function() {
     
  // 实例化对象
  let myChart = echarts.init(document.querySelector(".bar .chart"));
  // 指定配置和数据
  let option = {
     
    color: ["#3398DB"],
    tooltip: {
     
      trigger: "axis",
      axisPointer: {
     
        // 坐标轴指示器,坐标轴触发有效
        type: "shadow" // 默认为直线,可选为:'line' | 'shadow'
      }
    },
    grid: {
     
      left: "3%",
      right: "4%",
      bottom: "3%",
      containLabel: true
    },
    xAxis: [
      {
     
        type: "category",
        data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
        axisTick: {
     
          alignWithLabel: true
        }
      }
    ],
    yAxis: [
      {
     
        type: "value"
      }
    ],
    series: [
      {
     
        name: "直接访问",
        type: "bar",
        barWidth: "60%",
        data: [10, 52, 200, 334, 390, 330, 220]
      }
    ]
  };

  // 把配置给实例对象
  myChart.setOption(option);
})();
  1. 根据需求定制

    • 修改图表柱形颜色 #2f89cf

    • 修改图表大小 top 为 10px bottom 为 4% grid决定我们的柱状图的大小

   color: ["#2f89cf"],
   grid: {
     
     left: "0%",
     top: "10px",
     right: "0%",
     bottom: "4%",
     containLabel: true
   },
  1. X轴相关设置 xAxis
    • 文本颜色设置为 rgba(255,255,255,.6) 字体大小为 12px
    • X轴线的样式 不显示
   // 设置x轴标签文字样式
  // x轴的文字颜色和大小
        axisLabel: {
     
          color: "rgba(255,255,255,.6)",
          fontSize: "12"
        },
   //  x轴样式不显示
   axisLine: {
     
       show: false
       // 如果想要设置单独的线条样式 
       // lineStyle: {
     
       //    color: "rgba(255,255,255,.1)",
       //    width: 1,
       //    type: "solid"
      }
   }
  1. Y 轴相关定制
    • 文本颜色设置为 rgba(255,255,255,.6) 字体大小为 12px
    • Y 轴线条样式 更改为 1像素的 rgba(255,255,255,.1) 边框
    • 分隔线的颜色修饰为 1像素的 rgba(255,255,255,.1)
   // y 轴文字标签样式
   axisLabel: {
     
         color: "rgba(255,255,255,.6)",
          fontSize: "12"
   },
    // y轴线条样式
    axisLine: {
     
         lineStyle: {
     
            color: "rgba(255,255,255,.1)",
            // width: 1,
            // type: "solid"
         }
   5232},
    // y 轴分隔线样式
   splitLine: {
     
       lineStyle: {
     
          color: "rgba(255,255,255,.1)"
        }
   }
  1. 修改柱形为圆角以及柱子宽度 series 里面设置
   series: [
         {
     
           name: "直接访问",
           type: "bar",
           // 修改柱子宽度
           barWidth: "35%",
           data: [10, 52, 200, 334, 390, 330, 220],
           itemStyle: {
     
             // 修改柱子圆角
             barBorderRadius: 5
           }
         }
       ]
     };
  1. 更换对应数据
   // x轴中更换data数据
    data: [ "旅游行业","教育培训", "游戏行业", "医疗行业", "电商行业", "社交行业", "金融行业" ],
   // series 更换数据
    data: [200, 300, 300, 900, 1500, 1200, 600]
  1. 让图表跟随屏幕自适应
  window.addEventListener("resize", function() {
     
    myChart.resize();
  });

你可能感兴趣的:(JS-高级,javascript)