应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据,生产数据,用户数据)下使用,可视化图表来展示体现数据,让数据更加直观,数据特点更加突出。
完成该项目需要具备以下知识:
设计稿是1920px
flexible.js 把屏幕分为 24 等份
cssrem 插件的基准值是 80px
插件-配置按钮—配置扩展设置–Root Font Size 里面 设置。
但是别忘记重启vscode软件保证生效
1 | // 格式: 当前时间:2020年3月17-0时54分14秒 |
1 | header { |
需要一个上左右的10px 的内边距
column 列容器,分三列,占比 3:5:3
css样式:
1 | .mainbox { |
2px solid #02a6b51 | .panel { |
标题模块 h2 高度为 48px 文字颜色为白色 文字大小为 20px
图标内容模块 chart 高度 240px
以上可以作为panel公共样式部分
1 | h2 { |
#ffeb7b 字体是图标字体 electronicFont2px solid #02a6b5 宽度为 30px 高度为 10px1 | /* 声明字体*/ |
地图模块制作:
1 | <div class="no"> |
中间样式
1 | /* 声明字体*/ |
常见的数据可视化库:
ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
大白话:
官网地址:https://www.echartsjs.com/zh/index.html
官方教程:[五分钟上手ECharts](https://www.echartsjs.com/zh/tutorial.html#5 分钟上手 ECharts)
使用步骤:
1 | <div id="main" style="width: 600px;height:400px;"></div> |
1 | var myChart = echarts.init(document.getElementById('main')); |
1 | var option = { |
1 | myChart.setOption(option); |
这是要求同学们知道以下配置每个模块的主要作用干什么的就可以了
需要了解的主要配置:
seriesxAxisyAxisgridtooltiptitlelegendcolor
series
type 决定自己的图表类型xAxis:直角坐标系 grid 中的 x 轴
yAxis:直角坐标系 grid 中的 y 轴
grid:直角坐标系内绘图网格。
title:标题组件
tooltip:提示框组件
legend:图例组件
color:调色盘颜色列表
数据堆叠,同个类目轴上系列配置相同的stack值后 后一个系列的值会在前一个系列的值上相加。
1 | option = { |
1 | // 柱状图1模块 |
根据需求定制
修改图表柱形颜色 #2f89cf
修改图表大小 top 为 10px bottom 为 4% grid决定我们的柱状图的大小
1 | color: ["#2f89cf"], |
1 | // 设置x轴标签文字样式 |
1 | // y 轴文字标签样式 |
1 | series: [ |
1 | // x轴中更换data数据 |
1 | window.addEventListener("resize", function() { |
需求1: 修改图形大小 grid
1 | // 图标位置 |
需求2: 不显示x轴
1 | xAxis: { |
需求3: y轴相关定制
1 | //不显示y轴线条 |
1 | axisLabel: { |
需求4: 修改第一组柱子相关样式(条状)
1 | name: "条", |
1 | // 图形上的文本标签 |
1 | // 声明颜色数组 |
需求5: 修改第二组柱子的相关配置(框状)
1 | name: "框", |
需求6: 给y轴添加第二组数据
1 | yAxis: [ |
需求7: 设置两组柱子层叠以及更换数据
1 | // 给series 第一个对象里面的 添加 |
完整代码:
1 | // 柱状图2 |
需求1: 修改折线图大小,显示边框设置颜色:#012f4a,并且显示刻度标签。
1 | // 设置网格样式 |
需求2: 修改图例组件中的文字颜色 #4c9bfd, 距离右侧 right 为 10%
1 | // 图例组件 |
需求3: x轴相关配置
1 | xAxis: { |
需求4: y轴的定制
1 | yAxis: { |
需求5: 两条线形图定制
颜色分别:#00f2f1 #ed3f35
把折线修饰为圆滑 series 数据中添加 smooth 为 true
1 | color: ['#00f2f1', '#ed3f35'], |
需求6: 配置数据
1 | // x轴的文字 |
1 | // 图标数据 |
需求7: 新增需求 点击 2020年 2021年 数据发生变化
以下是后台送过来数据(ajax请求过来的)
1 | var yearData = [ |
完整代码:
1 | // 折线图1模块制作 |
需求1: 更换图例组件文字颜色 rgba(255,255,255,.5) 文字大小为12
1 | legend: { |
需求2: 修改图表大小
1 | grid: { |
需求3: 修改x轴相关配置
1 | // 文本颜色为rgba(255,255,255,.6) 文字大小为 12 |
需求4: 修改y轴的相关配置
1 | axisTick: { show: false }, |
需求5: 修改两个线模块配置(注意在series 里面定制)
1 | //第一条 线是圆滑 |
1 | name: "转发量", |
需求6: 更换数据
1 | // x轴更换数据 |
定制图表需求1:
1 | legend: { |
定制需求2:
1 | series: [ |
定制需求3:更换数据
1 | // legend 中的data 可省略 |
定制需求4: 更换颜色
1 | color: [ |
1 | // 4. 让图表跟随屏幕自动的去适应 |
第二步:按照需求定制
1 | color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff'], |
1 | radius: ['10%', '70%'], |
1 | roseType: "radius", |
1 | { value: 20, name: '云南' }, |
需求5:字体略小些 10 px ( series对象里面设置 )
饼图图形上的文本标签可以控制饼形图的文字的一些样式。 label 对象设置
1 | series: [ |
1 | + // 文字调整 |
1 | // 监听浏览器缩放,图表对象调用缩放resize函数 |
社区就是一些,活跃的echart使用者,交流和贡献定制好的图表的地方。
参考社区的例子:https://gallery.echartsjs.com/editor.html?c=x0-ExSkZDM (模拟飞机航线)
实现步骤:
需要修改:
1 | geo: { |
总结:这例子是扩展案例,大家以后可以多看看社区里面的案例。
1 | /* 约束屏幕尺寸 */ |