随着各行各业大数据的渗透,BI 类数据分析需求与日俱增,如何让可视化更好的展现数据的价值,是 BI 类产品一直努力的方向。对此国内外的BI产品都有自己的方法,如国外大牌的 PowerBI、Tableau,还有国内的 FineBI、BDP、Quick BI 他们都提供了丰富度可视化能力,但对于新手而言,有了数据之后如何选择合适的图表?如何配置酷炫夺目的图表?多个图表如何组织有故事的报表?亦或是你想了解可视化背后的技术原理,本文将一一为你解答。

图表开发

要使用 Quick BI 做可视化分析,只需要简单的三步(开启试用后方可进入下方链接,点击此处开始试用

  1. 连接数据源,打开 http://bi.aliyun.com/workspace/datasource 轻松配置。目前Quick BI已经支持包括 Mysql/PostgreSQL/SQL Server/Hive 在内的绝大多数数据源类型
  2. 新建数据集,打开 http://bi.aliyun.com/workspace/schema 选择数据库中一个表创建数据集,数据集也支持多个表之间雪花模型和星型模型关联
  3. 创建仪表板,接下来就可以开始选择需要的图表

首先看一下 Quick BI 图表的种类:

如上图,Quick BI目前共提供十三类三十多种图表,如柱状图包含普通柱图、堆积柱状图、百分比堆积柱图、条形图、堆积条形图、百分比堆积条形图6种,能涵盖 BI 分析中的绝大多数场景。

Quick BI还能轻松构建线柱组合图。如下图,为了分析服装类目利润和访客数及销量关系,利润使用柱状展示有利于突出主次关系。

鼠标hover到图例上能高亮指定数据,适合维度过多情况下单个维度分析。

此外,Quick BI 相对于其它图表,会对大数据量场景做适配,避免文案覆盖或展示不全。如下图,当饼图用例过多时,会对图例自动开启滚动条展示,Tooltip 显示位置优化排布:

此外还有来源去向图,适合分析页面间调整和用户行为路径:

QuickBI 提供这么多图表展示方式,但如何选择合适的图表类型能?这就需要根据数据特征出发,掌握这一技能需要练习和经验,对于新手,你可以参考如下图表选择流程图。

参考至 Andrew Abela 博士的图表建议(http://extremepresentation.typepad.com/blog/2006/09/choosing_a_good.html)

图表实现原理

介绍完图表类型和使用方法,如果你对图表技术原理感兴趣,可以看接下来的图表实现原理分析。

图表框架从上到下共分为4层:

1. 组件层

基于图表展示方式的不同,交互有很大差别,因此将线图、柱图、面积图、条形图、饼图等归位基础图表,他们基于常规的笛卡尔坐标系或极坐标系构建;交叉表、矩阵树图、漏斗图、来源去向图等交互各异,需要针对性优化,归为富交互图表;地图需要基于LBS地理位置数据,目前内置中国省市县地图,可以在不同级别上钻和下钻。最后一类是未来计划上线的3D图表。结合着目前VR/AR设备的兴起,3D图表在视觉效果上有更好的体验,未来计划发力。

2. 图表交互层

静态图表是呆板的,灵活的交互就像让图表说话一样提高数据分析的效率和体验,对于OLAP类数据来说钻取联动跳转是基本交互,这些所有支持类图表可以统一实现。坐标轴Axis、图例、提示框Tooltip在多个图表都支持,封装成通用模块方式提供。对于大数据量而言,这3个通用模块都需要解决小空间下如何展示大量文案的问题,Quick BI 内部基于很多算法来做展示优化,如当坐标轴数量过多时,通过对比坐标轴宽度和文案宽度,自动计算坐标轴文案倾斜夹角,避免文案重叠。对于数据量过大情况,实现自动抽样展示。

3. 数据配置层

数据主要分为两类:『展示数据』和『图表配置数据』。

展示数据是业务中的原始数据,不会因为图表类型的不同而变化。

图表配置数据又分为『用户产生的图表配置』和『图表默认配置』,最终图表展示是以二者合并之后为准。

由于上层图表交互只负责展现,因此需要的数据结构也是为了高效展现,接口提供的数据是为了方便存储,因此二者很多情况下不一致,所以就需要数据转换层做数据格式适配。

这一层是整个数据处理的核心,并不仅仅是转换方法,数据结构的设计同样是关键,需要兼顾到不同图表类型横向和未来扩展纵向的多重考量。

4. 底层依赖

由于可视化图表的多样性,一套框架或绘制方法很难高效满足业务需求,因此底层基于G2、Three.js、Leaflet 三个基础库,这三者有不是现成的图表库,都需要具体实现图表。类似于面粉和面条的关系,这三者相当于不同口味的面粉,最终开发的图表像面条。

G2 是一套基于可视化编码的图形语法,以数据驱动,适用于基础图表;Three.js 是WebGL的封装,提供高效API开发3D图表;Leaflet 适用于开发交互式地图类图表。

总结

以上是 Quick BI 图表的介绍、用法和技术原理。Quick BI 正是凭借阿里巴巴在大数据领域多年的经验,不断打磨出来的一款 BI 产品。希望他能帮你从杂乱的数字转换为酷炫的图表,帮你发掘数据背后的价值。

原文链接
更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

使用 QuickBI 搭建酷炫可视化分析的更多相关文章

  1. 炫酷的可视化工具包——cufflinks

    前言 学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等.这些可视化库都有自己的特点 ...

  2. Android绘图机制(四)——使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美

    Android绘图机制(四)--使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美 这里为什么不继续把自定义View写下去呢,因为最近项目 ...

  3. TensorSpace:超酷炫3D神经网络可视化框架

    TensorSpace:超酷炫3D神经网络可视化框架 TensorSpace - 一款 3D 模型可视化框架,支持多种模型,帮助你可视化层间输出,更直观地展示模型的输入输出,帮助理解模型结构和输出方法 ...

  4. OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践

    文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 概览 Grafana 是一个开源的监控数据分析和可视化套件.最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用 ...

  5. IntelliJ IDEA 新版发布:支持CPU火焰图,新增酷炫主题

    JetBrain 是一家伟大的公司,一直致力于为开发者开发世界上最好用的集成开发环境 就在上周,JetBrain 公司发布了 Java 集成开发环境 IntelliJ IDEA 最新版本 2018.3 ...

  6. 使用NestedScrollView+ViewPager+RecyclerView+SmartRefreshLayout打造酷炫下拉视差效果并解决各种滑动冲突

    使用NestedScrollView+ViewPager+RecyclerView+SmartRefreshLayout打造酷炫下拉视差效果并解决各种冲突 如果你还在为处理滑动冲突而发愁,那么你需要静 ...

  7. 【翻译】用 Expression Blend 创建酷炫的 Button

    原文:Creating “Cool” Buttons with Expression Blend Author: Alex 在本文中,我们将考虑在Expression Blend用几种方法来创建酷炫的 ...

  8. Android常用酷炫控件(开源项目)github地址汇总

    转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...

  9. 【Android】 给我一个Path,还你一个酷炫动画

    本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家公布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/53040506 ...

随机推荐

  1. 【JZOJ6360】最大菱形和(rhombus)

    description analysis 容易想到把原矩阵翻转\(45°\),然后每个数再用\(0\)隔开 然后就变成了求最大子正方形,求完二维前缀和之后就很好做了 code #pragma GCC ...

  2. IPTABLES--iptables

    A网:https://12.102.246.15:8080 B网:https://12.100.246.15:8080   A网DNAT转换: iptables -t nat -A PREROUTIN ...

  3. RocketMQ源码分析之RocketMQ事务消息实现原下篇(事务提交或回滚)

    摘要: 事务消息提交或回滚的实现原理就是根据commitlogOffset找到消息,如果是提交动作,就恢复原消息的主题与队列,再次存入commitlog文件进而转到消息消费队列,供消费者消费,然后将原 ...

  4. Spark 读写数据、抽象转换 拾遗

    读 package com.test.spark import org.apache.spark.sql.{Dataset, Row, SaveMode, SparkSession} /** * @a ...

  5. SGLTE/SVLTE、CSFB、SRVCC概念

    SGLTE:Simultaneous GSM and LTE,手机可以同时驻留在GSM和LTE网络中,打电话通过GSM网络进行,数据业务通过LTE网络进行.​ SVLTE:Simultaneous V ...

  6. git撤销修改及版本回退

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步, ...

  7. springboot+springsecurity+thymeleaf

    来源:听秦疆老师的课笔记 springsecurity是一个权限管理框架,用来授权,认证,加密等等......类似的工具还有shiro 1.整合 我用的是springboot2.2.0版本,导入以下依 ...

  8. python字符串的索引切片和常用操作方法,for循环

    ---恢复内容开始--- 一.字符串的索引与切片 1.索引 s = 'ASDFGHJKL' 有序序列,索引--index:从0开始 s1 = s[0],取出单个元素:A: s1是个全新的字符串和原字符 ...

  9. 初探Remax微信小程序

    1.创建项目 npx degit remaxjs/template-wechat my-app cd my-app && npm install 2.运行项目 npm run dev ...

  10. MQTT入门介绍

    一简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级&q ...