- Python大数据分析算法与实例
- 邓立国
- 1698字
- 2022-07-27 19:35:02
2.6 数据可视化
数据可视化是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。这是一个处于不断演变之中的概念,其边界在不断地扩大。主要指的是技术上较为高级的技术方法,而这些技术方法允许利用图形、图像处理、计算机视觉以及用户界面,通过表达、建模以及对立体、表面、属性以及动画的显示,对数据加以可视化解释。与立体建模之类的特殊技术方法相比,数据可视化所涵盖的技术方法要广泛得多。为了有效地传达思想概念,美学形式与功能需要齐头并进,通过直观地传达关键的方面与特征,从而实现对于相当稀疏而又复杂的数据集的深入洞察。
数据可视化与信息图形、信息可视化、科学可视化以及统计图形密切相关。当前,在研究、教学和开发领域,数据可视化是一个极为活跃而又关键的方面。“数据可视化”这条术语实现了成熟的科学可视化领域与较年轻的信息可视化领域的统一。
数据可视化技术包含以下几个基本概念。
(1)数据空间:是由n维属性和m个元素组成的数据集所构成的多维信息空间。
(2)数据开发:是指利用一定的算法和工具对数据进行定量的推演和计算。
(3)数据分析:是指对多维数据进行切片、块、旋转等动作剖析数据,从而能够多角度多侧面观察数据。
(4)数据可视化:是指将大型数据集中的数据以图形图像形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程。
数据可视化已经提出了许多方法,这些方法根据其可视化的原理不同,可以划分为基于几何的技术、面向像素技术、基于图标的技术、基于层次的技术、基于图像的技术和分布式技术等。数据可视化的适用范围存在着不同的划分方法。一个常见的关注焦点就是信息的呈现。数据可视化的两个主要组成部分是:统计图形和主题图。
1.数据的特性
要理解数据可视化,先要理解数据,再去掌握可视化的方法,这样才能实现高效的数据可视化。下面是常见的数据类型,在设计时,你可能会遇到以下几种数据类型:
(1)量性:数据是可以计量的,所有的值都是数字。
(2)离散性:数字类数据可能在有限的范围内取值。
(3)持续性:数据可以测量,且在有限范围内。
(4)范围性:数据可以根据编组和类别而分类。
可视化的意义是帮助人更好地分析数据,也就是说,这是一种高效的手段,并不是数据分析的必要条件。如果我们采用了可视化方案,就意味着机器并不能精确地分析。当然,要明确可视化不能直接带来结果,它需要人来介入分析结论。
2.数据可视化方法及工具
下面介绍代表性的图形化数据的可视化方法。
- 柱形图。
- 散点图。
- 地图。
- 面积图。
- 漏斗图。
- 仪表盘。
- 饼图。
- 折线图。
- 矩形树图。
编程语言类数据可视化工具如下:
● R
R经常被称为“统计人员为统计人员开发的一种语言”。如果需要深奥的统计模型用于计算,那么可以在CRAN上找到它,CRAN叫综合R档案网络(Comprehensive R Archive Network)并非无缘无故。说到用于分析和标绘,没有什么比得过ggplot2。而如果想利用比机器提供的功能还强大的功能,那么可以使用SparkR绑定,在R上运行Spark。
● Scala
Scala是最轻松的语言,因为大家都欣赏其类型系统。Scala在JVM上运行,基本上成功地结合了函数范式和面向对象范式,目前它在金融界和需要处理海量数据的企业中取得了巨大进展,常常采用一种大规模分布式方式来处理(比如Twitter和LinkedIn)。它还是驱动Spark和Kafka的一种语言。
● Python
Python在学术界一直很流行,尤其是在自然语言处理(NLP)等领域。因而,如果你有一个需要NLP处理的项目,就会面临数量多得让人眼花缭乱的选择,包括经典的NTLK、使用GenSim的主题建模或者超快、准确的spaCy。同样,说到神经网络,Python同样游刃有余,有Theano和TensorFlow;还有面向机器学习的Scikit-Learn,以及面向数据分析的NumPy和Pandas。
● Java
Java很适合大数据项目。Hadoop MapReduce是用Java编写的。HDFS也是用Java编写的。连Storm、Kafka和Spark都可以在JVM上运行(使用Clojure和Scala),这意味着Java是这些项目中的“一等公民”。另外,还有像Google Cloud Dataflow(现在是Apache Beam)这些新技术,直到最近它们还只支持Java。
在大数据时代,可视化图表工具不可能“单独作战”,而我们都知道大数据的价值在于数据挖掘,一般数据可视化都是和数据分析功能组合,数据分析又需要数据接入整合、数据处理、ETL等数据功能,发展成为一站式的大数据分析平台。