DataV首次实战分享:教你30分钟创建汽车大屏

简介: 我是一个技术男,同样也是个汽车爱好者,上个月买了辆的宝马,却发现路上的“宝马越来越多”(⊙﹏⊙)b ...... 我喜欢钻研技术,也喜欢钻研汽车,最近研究了一下数据可视化,发现用datav可以玩出一些花样,这次就分享一下我做汽车数据大屏的经验。

先看一下汽车大屏(手机流量慎点!):https://datav.aliyun.com/share/20acd88491367bf262fcb1e862ee8f1c

必备产品:DataV gif

4

我是一个技术男,同样也是个汽车爱好者,上个月买了辆的宝马,却发现路上的“宝马越来越多”(⊙﹏⊙)b ......
我喜欢钻研技术,也喜欢钻研汽车,最近研究了一下数据可视化,发现用datav可以玩出一些花样,这次就分享一下我做汽车数据大屏的经验。

没数据是不行的,首先七拼八凑了一些汽车数据,然后......

清洗数据

我找到的数据是这样的

尺寸 人数
4567mm*1786mm*1454mm 1
5300*1800*1600 1
长 4369mm *宽 1802mm *高1445mm 1
4670mm*1780mm*1435mm 1
4430*1793*1399 1
4671*1815*1478 1
4929mm*1898mm*1655mm 1
4430mm*1793mm*1399mm 1
4714*1810*1442 1
长4484mm *宽1798mm *高 1577mm 1
5090×1926×1900 1

看到这尺寸我就吐了…… 真是什么格式都有。

作为一个前端,用 javascript 简单的把他转化成了一个统一、干净的格式还是很容易的,相同尺寸的人数也统计(加)起来

var car = {};
require("tongji.txt")
.split("\n")
.forEach(function(v){
  var [size, num] = v.split("\t");
  size = size.replace(/^\D*(\d{4})\D*?(\d{4})\D*?(\d{4})\D*$/g, '$1*$2*$3')
  if (!car[size]) car[size] = 0;
  car[size] += num*1; 
});

/*
car = {
  4369*1802*1445: 1,
  4430*1793*1399: 2,
  4484*1798*1577: 1,
  4567*1786*1454: 1,
  4670*1780*1435: 1,
  4671*1815*1478: 1,
  4714*1810*1442: 1,
  4929*1898*1655: 1,
  5090*1926*1900: 1,
  5300*1800*1600: 1,
  //...
}
*/

清洗好的数据,就存入数据库

匹配车型

数据虽然干净了,但我还是有点不放心,通过车辆尺寸真的能找到车型?

找了一个车型库,简单写一个 SQL 测试一下

select 
  concat(`长度(mm)`, '*', `宽度(mm)`, '*', `高度(mm)`) as size, 
  count(distinct 车系) as cnt,
  group_concat(distinct 车系)
 from models 
group by size 
order by cnt desc 
limit 1000

得到的结果都是如下表一样,都是同品牌的相似车型,应该对结果不会有太大影响。
再连接上我的测试数据,结果几乎只是国产、进口的区别。

size cnt group_concat(distinct 车系)
4629*1880*1653 2 奥迪Q5,奥迪Q5(进口)
4638*1803*1598 2 英菲尼迪EX,英菲尼迪QX50(进口)
4624*1811*1460 2 宝马3系,宝马3系(进口)
4660*1852*1400 2 英菲尼迪G系,英菲尼迪Q60

为了计算方便,我再把 size 直接转化成了车型 id,这样数据就算准备好了。

DataV 上场

首先选了一个最顺眼的模板(技术男一般喜欢冷色,除非你心里住了一只小绵羊,才会选择“双11”的同款大屏)

1

我暂时没有什么地理数据,所以人人喜爱的地图,这次就删掉了,如果有人想看地图的操作分享,可以给我留言,我会再做异常关于地图可视化的分享。

r1

先把指标想好,把模块的标题改成想要的指标,不知道想看什么指标,就像我一样,神秘点——数据探索。

2

中间想要一个车系分布,这么大的区域可以列出很多车了。

添加一个饼图,调整好位置后直接选择到已经建好的数据库,

输入sql

select sum (l.num) as y, 车系 as x
  from stats as l
  left join models as c on c.id = l.car
 group by x order by y desc
 limit 30;

效果不满意,怎么办?再教你一招设计

r2d

然后再添加一些组件丰富一下

r3a

再增加几个个查询:

/* 总价值 */
select sum(num * price)*10000 as value from stats as l 
left join models as c on c.id = l.car;
/* 车辆总数 */
select sum(num) as value from stats
/* 平均车价 */
select sum(num*price)/sum(num) as value from stats
left join models as car on car.id = stats.car;
/* 排量分布 */
select sum(l.num) as y, `排量(L)` as x
from stats as l 
left join models as c on c.id = l.car 
group by `排量(L)` 
order by x asc
limit 20
/* 60万以内的价格分布 */
select sum(l.num) as y, concat(ceil(price/5)*5,"万") as x
from stats as l 
left join models as c on c.id = l.car 
where price < 60
group by FLOOR(price/5)
order by FLOOR(price/5) asc

这样就完成了中部的开发。

3

同样的方法给左侧添加数据,上面两个组件并不是我的style。先换掉,注意换掉组件的时候,数据源要重新选择一次。

r5a

右边也就以此类推啦,其实不一定要等想好了所有指标才动手。在做这个屏的时候,当数据输出成图表的瞬间,我经常会得到更有意思的想法。这个时候动手改改sql,也许更棒的指标就出来了。

做大屏重要的就是设计和数据:

设计方面:

如果你像我一样,是位个人爱好者,可以多去看看好莱坞大片,提升下数据审美。

如果你在一家有设计资源的企业,那就让他帮你做个视觉定位。一般是中间指标最关键,然后左边一栏指标是一条业务线,右边一栏指标是一条业务线,方便解读。

数据方面:

如果是个人学习,就到网上找点公开数据,或者直接在页面编辑静态数据。

如果是企业,那就按照企业的要求指标计算好,然后从数据读实时来读,DataV 的数据一栏中可以设置多久读一次库。

除此之外,我其实还是个数据分析师,如果你有数据不知道怎么分析,也可以留言给我,我可以帮你用 DataV 深入分析下。记住,汽车数据优先哦!

给DataV留个传送门,还没买的人可以看下,1块钱3个月,一般人我不告诉他。

下期分享:《你留言,我来写》-> -> 再见!

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
目录
相关文章
|
3月前
|
数据可视化 JavaScript 开发工具
vue2+datav可视化数据大屏(3)
接上一节所说,当我们将接口封装完了后,我们需要给大屏进行内容填充啦
|
3月前
|
数据可视化 JavaScript API
vue2+datav可视化数据大屏(2)
接上一节所说 我们已经讲骨架搭好 这节我们讲述的如何在vue2中使用mock数据和封装axios
|
3月前
|
数据可视化 JavaScript 前端开发
vue2+datav可视化数据大屏(1)
最近打算出一个前端可视化数据大屏的系列专栏,这次将很全面的教大家设计可视化大屏,从开始到打包结束,其中,包括如何设计框架,如何封装axios,等等,本次使用的数据均为mock数据。与正常使用一致。本文会从开始的创建vu23项目到最后的项目打包,本篇共计3节。
256 1
|
3月前
|
数据可视化 前端开发 JavaScript
react+datav+echarts实现可视化数据大屏
最近有点闲,就学习了下react,没想到就把react学完了,觉得还不错,就打算出一把react+datav的简易版可视化数据大屏供大家做个参考
145 2
react+datav+echarts实现可视化数据大屏
|
8月前
|
数据可视化 容器
DataV构建大屏(全屏)数据展示页面
DataV构建大屏(全屏)数据展示页面
517 0
|
11月前
|
资源调度 数据可视化 JavaScript
vue3+DataV+Echarts搭建数据大屏模板(建议收藏)
vue3+DataV+Echarts搭建数据大屏模板(建议收藏)
752 0
vue3+DataV+Echarts搭建数据大屏模板(建议收藏)
|
数据可视化
|
SQL 数据可视化 数据库
使用阿里云dataV实现大屏自动轮播
使用阿里云dataV实现大屏自动轮播进行动态展示
1481 0
使用阿里云dataV实现大屏自动轮播
|
JSON 编解码 监控
使用dataV还原销售实时监控大屏
使用dataV还原销售实时监控大屏
400 0
使用dataV还原销售实时监控大屏
|
数据可视化
宜搭&DataV在一起啦!宜搭大屏可视化正式全量上线
● 2021年10月,随着宜搭 3.0 的正式发布,为了让钉钉上的每一个企业数字化的工作方式被看见,在云栖大会上,宜搭在酷数据方面,正式“牵手”DataV,发布了宜搭大屏的能力; ● 2021年12月,宜搭 & DataV在产品侧充分融合无缝衔接,现,正式面向宜搭全量付费用户开放,真正让宜搭用户一键掌握专业炫酷的数据可视化表现力!
3538 1

相关产品

  • DataV数据可视化