基于js+echarts实现数据可视化,前端软件开发面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

仅仅会插入图表也是不够的,通过修改里面的配置项里面的属性来达到项目需求,直接去百度更方便,但是呢我们需要学会去查找文档echarts官网-文档-配置项手册

上面这个小例子就是为了让大家对echarts不迷茫,基本使用要会哟

三、知识点梳理

=======

再回到我们的项目上面,从项目效果可以看出里面的参数很多,如果都去重新定义一个新的变量的话,代码很多容易混淆,占用的空间也很大,这里呢 我们就使用立即执行函数

立即执行函数:


声明一个函数,并马上调用这个匿名函数就叫做立即执行函数;即立即执行函数是定义函数以后立即执行该函数。

()()

里面定义的参数相对于是局部变量,即使变量名相同,也不会有影响的,所以就放心使用吧

项目里面每个盒子的边框不再是中规中矩的border了,之所以看起来很高级,那是因为边框里面有图片哟,大家不要觉得很难,因为它真的很简单

边框图片


边框效果图:

首先来了解下边框图片需要掌握的属性

属性说明
border-image-source用在边框的图片的路径
border-image-slice图片边框内向偏移 裁剪的尺寸,一定不加单位,上右下左顺序进行裁剪
border-image-width图片边框的宽度(需要加单位)注意:不是边框的宽度而是边框图片的宽度
border-image-repeat图片边框是否平铺(repeat)、铺满(round)、或拉伸(stretch)默认拉伸

我们来看看border-image-repeat属性值不同的效果

你好

分割多少,就以四个角图片的完整度来哟

很多人会疑惑🤔  为什么还要在box盒子里面放一个inner盒子呢,注意看由于盒子模型的原因 如果直接写文字,文字的书写位置就达不到我们想要的这种效果,所以通过在边框里面再添加一个子盒子,利用定位 ,里面的内容就可以改变位置啦,快去试一试吧

字体图标


这里为什么要将字体图标呢,以前我们使用字体图标非常的麻烦 ,这里教给大家一种新的方法:通过类名调用字体图标

使用步骤

  • HTML页面引入字体图标中css文件
  • 标签直接调用图标对应的类名即可

老规矩,还是用一个简单的例子 这样大家就不用迷茫了,博主辛辛苦苦的为大家书写例题,一定要三步曲哟

Document

类名是怎么来的呢:直接在style.css里面复制

效果图:

修改线性渐变色方法


图中的统计图呈现的是一个颜色渐变的效果 看起来很好看 一起来看看它是如何实现的吧

效果图:

注意修改的是option对象里面的color属性哟

方法一:提倡这种方法 比较简单

color:new echarts.graphic.LinearGradient(

//(x1,y2)点到点(x2,y2)之间进行渐变

0,0,0,1,

[

{offset:0,color:‘#00fffb’ },//0起始颜色

{offset:1,color:‘#0061ce’ },//1结束颜色

]

),

方法二:

// 修改线性渐变色方式 2

color: {

type: ‘linear’,

x: 0,

y: 0,

x2: 0,

y2: 1,

colorStops: [{

offset: 0, color: ‘red’ // 0% 处的颜色

}, {

offset: 1, color: ‘blue’ // 100% 处的颜色

}],

globalCoord: false // 缺省为 false

},

销售额统计模块

========

这个模块也是这个项目的一个难点;根据年、季、月、周的切换下面的数据相应的改变

效果图 :

前提是给我们的盒子添加对应的属性

        <div class="sales panel">
            <div class="inner">
                <div class="caption">
                    <h3>销售额统计</h3>
                    <a href="javascript:;" class="active" data-type="year">年</a>
                    <a href="javascript:;" data-type="quarter">季</a>
                    <a href="javascript:;" data-type="month">月</a>
                    <a href="javascript:;" data-type="week">周</a>
                </div>
                <div class="chart">
                    <div class="label">单位:万</div>
                    <div class="line"></div>
                </div>
            </div>
        </div>

现将我们的数据提前准备,等我们学到后面的时候,这些数据就是从后台实时获取的,因为现在没有学到,所以现在就是写死我们的数据

var data = {

  year: [
    [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
    [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
  ],
  quarter: [
    [23, 75, 12, 97, 21, 67, 98, 21, 43, 64, 76, 38],
    [43, 31, 65, 23, 78, 21, 82, 64, 43, 60, 19, 34]
  ],
  month: [
    [34, 87, 32, 76, 98, 12, 32, 87, 39, 36, 29, 36],
    [56, 43, 98, 21, 56, 87, 43, 12, 43, 54, 12, 98]
  ],
  week: [
    [43, 73, 62, 54, 91, 54, 84, 43, 86, 43, 54, 53],
    [32, 54, 34, 87, 32, 45, 62, 68, 93, 54, 54, 24]
  ]

年、季、月、周的自动切换

//切换
$('.sales .caption').on('click', 'a', function () {
  //样式
  index = $(this).index() - 1;
  $(this).addClass("active").siblings("a").removeClass("active");
  var currDate = data[this.dataset.type];
  console.log(currDate);
  option.series[0].data = currDate[0];
  option.series[1].data = currDate[1];
  // 重新配好的数据给实例对象
  myChart.setOption(option)
})

根据tab的切换 获取相应的数据

var as = $(“.sales .caption a”);

var index = 0;
var timer = setInterval(function () {
  index++;
  if (index >= 4) {
    index = 0;
  }
  as.eq(index).click();
}, 1000)
//鼠标进入停止定时器,离开,开启定时器
$(".sales").hover(function () {
  clearInterval(timer);
}, function () {
  clearInterval(timer);
  timer = setInterval(function () {
    index++;
    if (index >= 4) {
      index = 0;
    }
    as.eq(index).click();
  }, 1000);
})

半圆形做法


前面只是教大家如何使用echarts图表,但是这种半圆里面是没有的,需要我们自己自己通过它提供的扇形图 自己修改 ,本质还以一个饼形

效果图:

做法:把一个饼形图分成三段,下面一段颜色设置为透明色即可,做一个拱形离不开的是将不透明的那一部分旋转正,在series里面设置调角度 其默认的角度是90度

startAngle :180 /起始角度,支持的范围是[0,360]

注意:此角度不是旋转角度,而是起始角度,

我们先来看看饼图的起始角度

上面这个图是我给大家准备的在线案例图,根据我的这个步骤,不会都很难啊

全国热榜模块制作


效果图: 从上面的动图 大家就可以知道这个模块要实现的功能,根据定时器 去切换到各省份相应的数据,与之前不同的是近30日的数据不是在html里面准备好的,而是动态的存储数据得到的,一起来看看它是如何实现的吧

从这个案例中我们要学到的知识点

  1. 实际开发中,后台返回的真实数据如何渲染到页面中
  1. ES6模版字符相关知识-拼接字符串

ES6模版字符:

`${表达式} `   //模版字符串使用返钩号‘’而且允许自动换行  反钩号是tab键上面的那个键

首先准备相关数据

首先来看它里面的属性 city、sales、flag是各省热销的数据 flag的值决定了箭头的方向,true就是箭头向上,反之则向下;

后话

对于面试,说几句个人观点。

面试,说到底是一种考试。正如我们一直批判应试教育脱离教育的本质,为了面试学习技术也脱离了技术的初心。但考试对于人才选拔的有效性是毋庸置疑的,几千年来一直如此。除非你有实力向公司证明你足够优秀,否则,还是得乖乖准备面试。这也并不妨碍你在通过面试之后按自己的方式学习。
其实在面试准备阶段,个人的收获是很大的,我也认为这是一种不错的学习方式。首先,面试问题大部分基础而且深入,这些是平时工作的基础。就好像我们之前一直不明白学习语文的意义,但它的意义就在每天的谈话间。

所谓面试造火箭,工作拧螺丝。面试往往有更高的要求,也迫使我们更专心更深入地去学习一些知识,也何尝不是一种好事。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

后话


对于面试,说几句个人观点。

面试,说到底是一种考试。正如我们一直批判应试教育脱离教育的本质,为了面试学习技术也脱离了技术的初心。但考试对于人才选拔的有效性是毋庸置疑的,几千年来一直如此。除非你有实力向公司证明你足够优秀,否则,还是得乖乖准备面试。这也并不妨碍你在通过面试之后按自己的方式学习。
其实在面试准备阶段,个人的收获是很大的,我也认为这是一种不错的学习方式。首先,面试问题大部分基础而且深入,这些是平时工作的基础。就好像我们之前一直不明白学习语文的意义,但它的意义就在每天的谈话间。

所谓面试造火箭,工作拧螺丝。面试往往有更高的要求,也迫使我们更专心更深入地去学习一些知识,也何尝不是一种好事。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-MtEUuCmk-1713540558478)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

基于Vue和Echarts数据可视化平台是为了满足数据分析、决策制定和交互式展示等需求。这样的平台提供了一种交互式可视化界面,一个用户可以查看、解释和运用数据,快速做出决策。所以,对于企业来说,这样一种数据可视化平台的开发是非常有意义的。以下是更加详细的分析: 1. 提高效率——基于Vue和Echarts开发的数据可视化平台可以降低数据分析的复杂程度,同时提高决策的质量,因为它很好地呈现了数据,使分析变得容易。 2. 提高用户使用体验——这种平台利用了Vue的特性,提供了一个强大的前端框架,用户可以享受流畅、灵活和易于使用的界面。 3. 提供多种展示方式——利用Echarts提供的多种可视化方式,平台可以让用户按自己的需要进行选择展示,比如可以使用柱状图、饼状图、折线图、散点图等多种方式展示数据,方便用户进行数据分析。 4. 协作——通过这种平台,不同部门的员工可以轻松协作,共享同一份数据,进行各种分析和决策。 5. 扩展性——利用Vue和Echarts提供的丰富插件和组件,平台可以进行无限扩展,以适应不同的业务需求。 总之,基于Vue和Echarts开发的数据可视化平台提供了一种高效、快捷、高质量的数据分析解决方案,对于企业决策制定、数据分析和沟通交流都是非常有意义和重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值