前端学习篇 -- ECharts 学习

1、数据可视化

目的:借助于图像化手段,清晰有效地传达与沟通信息。

数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理

2、Echarts-介绍

常见的数据可视化库:

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

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

3、Echarts-使用步骤

  1. 引入echarts 插件文件到html页面中
  2. 准备一个具备大小的DOM容器
<div id="main" style="width: 600px;height:400px;"></div>
  1. 初始化echarts实例对象
let myChart = echarts.init(document.getElementById('main'));
  1. 指定配置项和数据(option)
let 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'
    }]
};
  1. 将配置项设置给echarts实例对象
myChart.setOption(option);

4、Echarts-配置说明

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

4.1 title:标题组件

设置图表标题(一般不使用)

let option = {
    title: {
        text: '折线图堆叠'
    },
}

属性值:

text: '文本内容',
link: '文本超链接',
target: '超链接窗口打开方式'  
    blank - 新窗口
    self  - 当前窗口

4.2 tooltip:提示框组件(*)

鼠标放上去会有提示信息

let option = {
    title: {
        text: '折线图堆叠'
    },
     tooltip: {
        trigger: 'axis'
    },
}

属性值:

trigger: ''
    'item' 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用
    'axis' 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用
    'none' 什么都不触发

4.3 legend:图例组件

类似图表的锚点,点哪个对应的图表就会 隐藏/出现

let option = {
     legend: {
     // series里面有了 name值则 legend里面的data可以删掉
        data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
    },
    textStyle: {
        '设置图标样式',
        color - 图标颜色
    },
    itemGap: '图标间隔',
    itemWidth: '图标宽',
    itemHeight:'图标高',
}

4.4 toolbox : 工具箱组件

可以另存为图片等功能(一般不使用)

let option = {
    toolbox: {
        feature: {
            saveAsImage: {}
        }
    },
}

4.5 grid:直角坐标系内绘图网格(*)

控制图表的大小

let option = {
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
}

属性值:

left:'距离容器的左侧距离',
right:'距离容器的右侧距离',
top:'距离容器的上侧距离',
left:'距离容器的下侧距离',
containLabel: '以什么位置距离盒子'
    true - 以文字距离
    false- 以刻度尺距离

4.6 xAxis 和 yAxis 坐标轴(*)

设置图表的水平轴跟垂直轴

xAxis: {
    type: 'category',
    boundaryGap: false,
    data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
    type: 'value'
},

属性值:

show: '是否显示坐标轴',
    true / false
inverse: '是否反向坐标轴',
    true(正向) / false (反向)
axisTick: '坐标轴刻度相关设置',
    show: '是否显示',
type:  '坐标轴类型',
    'value' 数值轴,适用于 yAxis
    'category' 类目轴,适用于 xAxis
    'time' 时间轴,适用于连续的时序数据
    'log' 对数轴。适用于对数数据
boundaryGap: '设置图表是否紧贴坐标轴',
    true - 是
    false- 否
data: ['数据1','数据2'...],
axisLabel: {
    '坐标轴刻度文字相关设置'
    color: '文字颜色',
    fontSize: '文字大小'
    ...
},
axisLine: {
    '坐标轴线条设置'
    show: '是否显示',
        true / false
    lineStyle: {
       //设置单独的线条样式
       // color: "rgba(255,255,255,.1)", 线条颜色
       // width: 1,                      线条宽度
       // type: "solid"                  线条类型
    }
},
splitLine: {
    '分割线样式'
    lineStyle: {
       //设置单独的线条样式
       // color: "rgba(255,255,255,.1)", 线条颜色
       // width: 1,                      线条宽度
       // type: "solid"                  线条类型
    }
}

4.7 series : 系列图表配置(**)

它决定着显示那种类型的图表

 series: [
    {
        name: '邮件营销',
        type: 'line',
        stack: '总量',
        data: [120, 132, 101, 134, 90, 230, 210]
    },
    {
        name: '联盟广告',
        type: 'line',
        stack: '总量',
        data: [220, 182, 191, 234, 290, 330, 310]
    },

    {
        name: '搜索引擎',
        type: 'line',
        stack: '总量',
        data: [820, 932, 901, 934, 1290, 1330, 1320]
    }
]

属性值:

name: '设置图表的锚点名称', //设置后就不用 legend 组件了
type: '图表类型',
    'line' - 折线图
    'bar'  - 柱状图
    'pie'  - 饼图
    ...
stack: '堆叠', //如果设置了相同的值,那么data数据里则是追加(一般不设置)
data: [] //设置图表数据,
barWidth: '设置线条的宽度',
lineStyle: {
    '当前线条样式相关设置',
},
itemStyle: {
    '设置线条焦点图形样式',
},
areaStyle: {
    '填充区域设置'
},
symbol: '设置线条焦点图形',
    'circle' - 小圆点
    ‘rect’   - 小方块
    ...
symbolSize: '设置线条焦点图形大小',
radius: '设置饼形图大小', 
    [40%,60%]  //内圆半径和外圆半径
center: '设置饼形图位置',
    [40%,60%]  //水平位置和垂直位置
barCategoryGap: '线条之间的距离',
lable: {
    '线条内文本标签设置',
    show: '是否显示',
        true / false
    position: '显示位置',
        inside //在线条内
        ...
    formatter: '设置显示文字内容'
        {a} //name里的名字
        {b} //数据名,坐标轴里的data值
        {c} //data里数据值
},
lableLine: {
    '图形与文字间引导线设置',
    length: '第一条引导线',
    length2: '第二条引导线'
}
yAxisIndex: '设置y轴的层叠性', //如果y轴有两条或以上数据,就是设置重叠
xAxisIndex: '设置x轴的层叠性'

4.8 color:线条颜色(*)

设置线条颜色

color: ['颜色1','颜色2'...]

5、图表自适应屏幕

window.addEventListener("resize", function() {
  myChart.resize();
});

6、中国地图配置

6.1 引入 china.js 文件

6.2 社区找相关图表

6.3 样式

在 geo 对象里修改

geo: {
    map: 'china',
      //地图放大 1.2 倍
      zoom: 1.2,
      label: {
        emphasis: {
          show: false
        }
      },
      roam: false,
      itemStyle: {
        normal: {
          //省份颜色
          areaColor: '#142957',
          borderColor: '#0692a4'
        },
        emphasis: {
          areaColor: '#0b1c2d'
        }
      }
}

猜你喜欢

转载自blog.csdn.net/weixin_44257930/article/details/109012559