数据可视化初体验(R语言)

标签: 开发语言和框架 R 数据可视化 | 发表时间:2013-11-13 18:18 | 作者:zhengsj
出处:http://tech.uc.cn

我对数据可视化的认识

前些天通过一张美丽的图片,闯进了 FlowingData这个世界,开始真正去了解数据可视化。“The greatest value of a picture is when it forces us to notice what we never expected to see”是该网站about中的第一句话,在逛了不少可视化的网站和博客之后,个人觉得这句话是数据可视化最好的注解。大数据像是‘黑盒子’一样的新世界,现在我们用数据挖掘来探索这个世界的规则和信息。但是没有问题导向的数据挖掘需要花费大量的时间来探索。另外眼睛才是我们认识世界最直接有效的渠道,所以如果我们能够将数据世界具体化呈现出来,那么其实很多规则我们用眼睛就可以看得到。甚至看到更多隐藏的信息。数据可视化不仅仅是为了展示数据,而是通过图像残留来增加人思考的时间和质量,加大概率发现隐藏在数据背后的未知。

这幅图是twitter近3亿用户按经纬度和语言的分布。逻辑上很简单的图,但当却耐人寻味。你可以把一张欧洲地理地图、公路铁路地图或者其他信息图与其进行对比,你会快速的清楚大部分的twitter用户所处的各种环境,甚至更多的信息,当然带来更多的思考点,而且这样的图形会经常浮现,让你整天处于思考状态。

另外发现了很多非常有意思的数据可视化网站: 纽约时报的可视化工作实验室(商业性强); Information is beautiful(想象力丰富,数据可视化比赛); Flowingdata(前沿技术应用、产品化)。  

R的可视化

目前数据可视化大军大都在UCD方面, 像百度的流量研究院,和腾讯的 qq游戏地图这些都是优秀的数据可视化产品,完美的效果和用户体验。但对数据从事人员来说,数据可视化是锦上添花的一部分,他们更重要的工作是从数据中挖掘出规则和信息,然后才将这些结果可视化出来。说到这里就有一种语言浮出水面:R。R是一种优秀的具有很强数据可视化功能的数据分析语言。

很些人总结出了一些数据可视化的步骤,如 这里。这里我讲一下我的方法:类比代数学中的元素与映射,数据可视化本质上就是两样东西,一样是实体(你的研究对象,可以是任何范畴),一样是联系(就是两个或多个实体之间的关系)。其中实体和联系都有属性,比如把人当成实体,那么人有身高、体重等属性;而人与人之间的联系的属性有像亲密程度、贫富差距等属性。那我们需要的就是把这些信息最清晰的表现出来,我觉得这样的逻辑方式可以帮帮助我们对可视化进行分解,更容易解放想象力。 下面以中国航空数据图作为例子来讲一下。从 这里可以得到机场的数据。从 这里可以得到所有航线的数据。这两个数据集都是包含全世界的,需要从中将中国的数据提出。还需要做一些数据处理和分析工作,篇幅关系下面只给出了图形部分的代码。分几步来说:

1.将机场当成实体,它的一个属性是航线的数量。用直方图来体现

boke_zhifan

ggplot(cnt) + geom_bar(aes(x = cnt$count))

2.机场有另外一个属性:地理位置。用地图来体现,并将航线数量展示上去

boke_tu3

p=ggmap(get_googlemap(center='china',zoom=4,maptype='terrain'),extent='device')
p+geom_point(data=chinaport,aes(x=lon,y=lan),colour='blue',size(chinaport$count/10)
             alpha=0.6)

3.接下来就是将机场的联系展示上去。

boke_7

ggmap(get_googlemap(center = 'china', zoom=4, maptype='roadmap'),extent='device')+#画地图
geom_point(data=chinaport,aes(x=lon,y=lan),colour = 'blue',
           size=(chinaport$count/20),alpha=0.8)+  #画机场
geom_line(data=dat,aes(x=lon,y=lan,group=group), size=0.1, #画航线
          alpha=0.05,color='red4')

4.有时候一张图是不足以体现数据的,这里用一张gif图来表现每个机场的航线数。( 点击看大图

hanxian

require(animation) #导入所用包
draw = function(i){  #画图函数
   one = chinaport[1:i,]  
   p=ggmap(get_googlemap(center='china',zoom=4,maptype='terrain'),extent='device')  
   p+geom_point(data=one,aes(x=lon,y=lan),colour='blue',size(one$count/15),alpha=0.6)+  
   geom_point(data=one,aes(x=lon,y=lan),colour='red',alpha=0.6) 
                  } 
oopts = ani.options(ffmpeg = "D:/Program Files (x86)/ImageMagick-6.8.7-Q8/ffmpeg.exe") #设置ffmpeg 
saveVideo({  
    for(i in 1:36) print(draw(i)) #循环调用画图函数  
    ani.options(interval = 0.6, nmax = 230) },  
    video.name = "hanxian.gif", other.opts = "-b 500k")

可重复和自动化统计报告

国内一个专注于R语言自动化报告的学者 谢益辉,开发了一个基于R语言的Knitr包,主要用来实现可重复统计报告。Knitr包主要是实现在标记语言 Markdown中嵌入R代码,然后执行Markdown脚本就可以生成一份具有R程序分析结果的报告。

具体 步骤为:
1. 先在R中建一份R-Markdown(.md)文件,可直接在其中写Markdown脚本。
2. 可以通过以下方式插入R脚本,并可以通过调参,控制R程序的输出包括表和图的各种属性控制。
3. 最后通过Knitr来运行这份.md文件可直接生产一份html文档,也可通过latex进一步产生一份pdf报告。

通过这个方案,其实我们可以定制一些日常可视化的数据分析报告,这不仅要比密密麻麻的数据报表来得要鲜活得多,而且支持更加深入的分析和针对性的结果展示.

注:本文采用R中的ggplot包实现可视化,这是一个图层逻辑的可视化工具(跟本文的可视化逻辑很符合),在这并没有详细阐述,待接下来再写一篇来好好介绍一下神奇的ggplot。

相关 [数据 可视化 初体验] 推荐:

数据可视化初体验(R语言)

- - UC技术博客
前些天通过一张美丽的图片,闯进了 FlowingData这个世界,开始真正去了解数据可视化. “The greatest value of a picture is when it forces us to notice what we never expected to see”是该网站about中的第一句话,在逛了不少可视化的网站和博客之后,个人觉得这句话是数据可视化最好的注解.

数据可视化

- Sillywolf - ISD Webteam

大数据的可视化

- - CSDN博客云计算推荐文章
       现在数据管理面临的一个关键性问题是如何将这些海量的来自于四面八方的非结构化数据可视化. 不管你从事于什么行业或者正在从事于哪一方面的研究,正将是你经常会触及的问题. 最近,埃里克•奥彭肖和JR里根做客了商务博客的“金融时代”专栏,讨论的主题为“大数据可视化是‘大数据’的关键机会”,分析了今天大数据的使用者们面临的可视化问题,以及公司为应对这个挑战而付诸的一些创新的方法.

Visual.ly:可视化数据探索平台

- kaichun - TechWeb 新酷网站 RSS阅读
Visual.ly相关图片(图片来源:Techweb.com.cn).   【TechWeb报道】4月12日消息,新酷网站:可视化数据探索平台Visual.ly.   我们生活在数据收集和内容创作的时代. Visual.ly正是这个数据时代当产物,一个全新的可视化信息图形新平台. 信息图形将极大的刺激视觉表现,促进用户间相互学习、讨论.

数据可视化6步法

- - 百度商业用户体验部
在当前互联网,各种数据可视化图表层出不穷,本文尝试对数据可视化的方法进行归纳,整理成6步法. 一般的数据图表都可以拆分成最基本的两类元素: 所描述的事物及这个事物的数值,我们暂且将其分别定义为指标和指标值. 比如一个性别分布中,男性占比30%,女性占比70%,那么指标就是男性、女性,指标值对应为30%、70%.

大数据可视化小结

- - CSDN博客云计算推荐文章
苏州海数信息www.dataonv.com. 对数据可视化的需求正急剧增长. 一部分原因是更多的公司正在寻求通过对大数据分析来获得可视化的业务洞察力. 大数据的可视化个人认为还是以仪表盘为展现的最终载体,当然仪表盘会包含移动端、云端和企业端. 那么,仪表盘中的内容应该包含哪些. 大数据的最终分析结果,其中有一种是对关键指标的计算结果,如:市场模糊占有率,总体情感指数,用户粘度系数等等,其展现内容最简单来说就是一个数字或者百分比,展现形式可以是较为显眼的图片,突出数字的基础上,增加小部分的文字描述;.

Twitter数据挖掘及其可视化

- - 细语呢喃
前阵子有学弟学妹问我毕设做的啥,于是我决定记录一下去年毕设的内容. 主要是基于twitter的内容有:. Twitter数据挖掘平台的设计与实现. 毕设从16年3月开始做,做到5月初,开始写论文,当时写的论文一共有七章,写了一个礼拜,从早到晚- -| 共24834字. ,数据有的从15年11月左右开始抓的.

Hadoop初体验――搭建hadoop简单实现文本数据全局排序

- - 学着站在巨人的肩膀上
      手头上有三台配置一样的电脑,就不去装虚拟机了,配置如下:.       三台电脑装有相同的操作系统――Ubuntu 11.04.       任选一台机器作为master,其他机器作为slaves,所有机器拥有相同的用户、相同的环境变量配置、相同的hadoop目录结构、相同的Java目录结构.

MapR初体验

- 呆瓜 - 淘宝数据平台与产品部官方博客 tbdata.org
MapR是MapR Technologies, Inc的一个产品,号称下一代Hadoop,使Hadoop变为一个速度更快、可靠性更高、更易于管理、使用更加方便的分布式计算服务和存储平台,同时性能也不断提高. 它将极大的扩大了Hadoop的使用范围和方式. 它包含了开源社区的许多流行的工具和功能,例如Hbase、Hive.