700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 数据可视化(BI报表的开发)第一天

数据可视化(BI报表的开发)第一天

时间:2018-12-25 21:18:32

相关推荐

数据可视化(BI报表的开发)第一天

课程回顾:

​ jQuery事件注册:

​ $(元素).click(function () {});

​ $(元素).on(‘click’, [后代元素], function () {});

​ $(元素).one(‘click’, function () {});

​ 解绑事件:off

​ 自动触发:

​ $(元素).click();

​ $(元素).trigger(‘click’);

​ $(元素).triggerHandler(‘click’);

​ 事件对象:$(元素).click(function (e) {e});

​ 本地存储:

​ localStorage.setItem(‘键’,‘值’);

​ localStorage.getItem(‘键’);

​ JSON数据:

​ JSON.parse(字符串);

​ JSON.stringifyh(数组);

可视化项目:

1、课程目标:

链接:添加链接描述

提取码:5kyp

码云地址:码云地址

实践css布局相关技术实践jquery相关技术掌握echarts的基本使用

2、项目介绍

​ 应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据,生产数据,用户数据)下使用,可视化图表来展示体现数据,让数据更加直观,数据特点更加突出。我们引入 ‘立可得’ 数据可视化项目。

我们要完成这个项目:需要使用一些基础的DIV+CSS布局,还引入了一些C3技术,还引入了各类图表的绘制,以及高级的地图数据可视化案例。主要功能有:饼状图、柱状图、线形图、地图 …

​ 设计稿是1920的,所以会做一些适配,但不会都去适配

需要具备知识:

完成该项目需要具备以下知识:

div + css 布局flex 布局css3动画css3渐变css3边框图片原生js + jquery 使用rem适配echarts基础(重点)

3、Echarts-介绍

地址:/zh/index.html

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

理解:实际上就是一个JS插件,可以运行在PC和移动设备,兼容主流浏览器,提供非常多的图表(折线图,柱状图,散点图,饼图,K线图)

4、Echarts-体验

1、下载:下载echarts /apache/incubator-echarts/tree/4.5.0

2、进入echartsdist/echarts.min.js【引入】

3、准备一个具备大小(宽高)的 DOM

<div id="main" style="width: 600px;height:400px;"></div>

4、初始化echart实例

通过:echarts.init实例化一个容器(内部返回实例对象)var myChart = echarts.init(document.getElementById('main'));

5、指定图表的配置项和数据 (根据文档提供示例找到option)

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'}]};

6、使用刚指定的配置项和数据显示图表【配置不同图表不同】

myChart.setOption(option);

5、Echarts-基础配置

需要了解的主要配置:seriesxAxisyAxisgridtooltiptitlelegendcolor

大致划分两大类,有轴的和无轴的

series 系列列表。每个系列通过type【line(线性),bar(柱状)】决定自己的图表类型大白话:图表数据,指定什么类型的图标(折现,柱状等),可以多个图表重叠。 xAxis:直角坐标系 grid 中的 x 轴yAxis:直角坐标系 grid 中的 y 轴【Y依赖数据显示】grid:直角坐标系内绘图网格title:标题组件tooltip:提示框组件【鼠标放上显示】(轴上提示:trigger : ‘axis’,)legend:图例组件,每个线图表作用,【需要数据series有name属性】color:调色盘颜色列表【数组传递】

演示代码:

var option = {xAxis: {type: 'category',data: ['星期一', '星期二', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{name: '用户注册',data: [820, 932, 901, 934, 9222, 1330, 1320],type: 'line'},{name: '用户数据',data : [820, 932, 600, 934, 1290, 1330, 1320],type : "bar",}],grid : {show : true,// top : 100},tooltip : {trigger : "axis"},title : {text : '年度统计'},color : ['red','yellow'],legend : {data:['用户注册','用户数据']}};

6、REM适配

适配方案:

设计稿是1920px ,约定rem基准值为 24px (基准值html的font-size)。【不同设配等比显示,例如320和375等设备】适配范围:[1024-1920],和移动适配不同移动适配固定设备之前媒体查询,类似手淘的flexible,JS设置,实时配置,根据等比例配置;基准值动态设置那么:设备宽度与rem基准值比例为 80 。结论:适配设备的时候保持80的比例即可。将来:换算rem单位的时候,使用24px基准值即可。

实现代码,在页面底部加载index.js文件实现动态设置基准值逻辑:

页面初始化,就需要一个基准值,

<script src="js/index.js"></script>

(function () {// 1、页面一加载就要知道页面宽度计算var setFont = function () {// 因为要定义变量可能和别的变量相互冲突,污染,所有用自调用函数var html = document.documentElement;// 获取html// 获取宽度var width = html.clientWidth;// 判断if (width < 1024) width = 1024;if (width > 1920) width = 1920;// 设置html的基准值var fontSize = width / 80 + 'px';// 设置给htmlhtml.style.fontSize = fontSize;}setFont();// 2、页面改变的时候也需要设置// 尺寸改变事件window.onresize = function () {setFont();}})();

注意:书写CSS代码,让px转换rem单位,使用一个cscode插件 cssrem

vscode插件搜索cssrem,进行安装既可需要在设置中cssrem换算的时候使用80的比例

// rem换算"cssrem.rootFontSize": 24,//【计算时的基准值】"cssrem.fixedDigits":// 3,【取三位小数】"cssrem.autoRemovePrefixZero": false,//【是否去除0】1920设计稿,比例80,基准值24,计算式可能有小数,很多位,保留3为有效小数,不去除0,例如(0.333);

7、基础布局

html结构

<div class="viewport"><div class="column"><!--概览--><div></div><!--监控--><div></div> <!--点位--><div></div> </div><div class="column"><!--地图--><div></div><!--用户--><div></div> </div><div class="column"><!--订单--><div></div><!--销售--><div></div> <div><!--渠道--><div></div><!--季度--><div></div></div><!--排行--><div></div> </div> </div>

body 设置背景图 ,行高1.15,字体12px,内外边距清除viewport 主体容器,限制最小宽度1024px,与最大宽度1920px,最小高度780px。 需要居中显示使用logo.png做为背景图,在容器内显示内间距 88px 20px 0 column 列容器,分三列,占比 3:4:3 中间容器外间距 32px 20px a

css样式:

/* 基础布局 */body{font-family: Arial, Helvetica, sans-serif;margin: 0;padding: 0;font-size: 0.5rem;line-height: 1.15;background: url(../images/bg.jpg) no-repeat 0 0 / cover;}h4,h3,ul{margin: 0;padding: 0;font-weight: normal;}ul{list-style: none;}a{text-decoration: none;}.viewport{max-width: 1920px;min-width: 1024px;margin: 0 auto;min-height: 780px;padding: 3.667rem 0.833rem 0;background: url(../images/logo.png) no-repeat 0 0 / contain;display: flex;}.column{flex: 3;position: relative;}.column:nth-child(2){flex: 4;margin: 1.333rem 0.833rem 0;}

8、边框图片

css3中自适应边框图片运用:

组合写法:

border-image: url("images/border.jpg") 167/20px round;

拆分写法:

border-image-source: url("images/border.jpg");border-image-slice: 167 167 167 167;border-image-width: 20px;border-image-repeat: round;

解释:

边框图片资源地址裁剪尺寸(上 右 下 左)单位默认px,可使用百分百。边框图片的宽度,默认边框的宽度。平铺方式: stretch 拉伸(默认)repeat 平铺,从边框的中心向两侧开始平铺,会出现不完整的图片。round 环绕,是完整的使用切割后的图片进行平铺。

DEMO代码:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>边框图片</title><style>ul{margin: 0;padding: 0;list-style: none;}li{width: 350px;height: 160px;border: 20px solid #ccc;margin-top: 20px;}li:nth-child(1){/*border-image: url("images/border.jpg") 167/20px round;*/border-image-source: url("images/border.jpg");border-image-slice: 167 167 167 167;border-image-width: 20px;/*环绕 是完整的使用切割后的图片进行平铺*/border-image-repeat: round; }li:nth-child(2){/*平铺 从边框的中心向两侧开始平铺 会出现不完整的图片*/ border-image: url("images/border.jpg") 167/20px repeat;}li:nth-child(3){/*默认的平铺方式*/border-image: url("images/border.jpg") 167/20px stretch;}</style></head><body><ul><li></li><li></li><li></li></ul></body></html>

课程回顾:

​ 可视化:介绍

​ Echarts:JavaScropt库,图表

​ 下载,引入,【写一个盒子,实例化对象,配置项,对象.setOption(配置项)】

​ REM:1024-1920,80

​ 局部:flex

​ 边框图片:画4到,吧四个角切割出来,四个角依次放到盒子的四个角

​ background-image:url(地址) 切割/边框px 拉伸;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。