本文转载自:https://mp.weixin.qq.com/s?__biz=MjM5MTQzNzU2NA==&mid=208506453&idx=2&sn=1f0d2cde4f07877af863aeb50c7d66ce&scene=21#wechat_redirect

让我们快速浏览一下这张图表:

这张可视化数据图(最初用Tableau软件创建 )是如何利用数据可视化来帮助决策者的一个很好的例子。想象一下,如果这些信息通过表格来告诉投资者,你认为你会花多长时间来向他解释?

如今的世界里,随着数据量的不断增长,很难不用可视化的形式来呈现你数据里的全部信息。虽然有专门的工具,如Tableau, QlikView 和 d3.js,但没有任何东西能代替有很好可视化能力的建模/统计工具。尤其是它有助于做若干探索性数据分析和特征化工程。这就是R语言,它提供了令人难以置信的帮助。

R语言提供了令人满意的一套内置函数和库(如 ggplot2, leaflet, lattice)用来建立可视化效果以呈现数据。在本文中,我已经涉及了用R语言编程来创建既常见又先进的可视化效果的步骤。但是,在介绍那些之前,让我们快速浏览一下数据可视化简史。如果您对历史不感兴趣,没问题,您可以跳到下一节。

 数据可视化简史

从历史来看,数据可视化的进化已经被著名的从业者在工作中完成了。威廉.普莱菲(William Playfair)是统计图形化方法的创始人。威廉.普莱菲发明了四种类型的图表:线图、经济学数据的柱状图、饼状图和圆图。约瑟夫·普里斯特利(Joseph Priestly)创建了第一个划时代的时间线图,其中的每一个柱形是用来显示一个人的寿命(1765)。没错,时间线图被发明于250年前,而不是Facebook发明的!

最著名的早期可视化数据是由Charles Minard所描绘的Napoleon’s March(俄法战争)。可视化数据中包含了随着时间的变化,气温对拿破仑入侵俄国产生广泛影响的信息。在图形中,值得注意的是,在二个维度上的六种类型数据,分别表示:拿破仑军队的数量,距离,温度,纬度和经度,行军方向和跟特定日期有关的位置。

弗洛伦斯·南丁格尔(Florence Nightangle)也是数据可视化的先驱。她用数据图表的方式描述了疾病对军队的死亡率的影响(1858)。琼恩·雪诺(John Snow)(不是《权力的游戏》里的人物)是把地图用在图表和空间分析的先驱。在1854年的伦敦,用这地图发现了霍乱疫情的源头与公共水泵有关,信息图帮助精确定位爆发源到某一个泵的位置。

用R语言进行数据可视化

在这篇文章中,我们将创建以下可视化效果:

基本可视化效果

1. 直方图

2. 条形图/线型图

3. 箱式图

4. 散点图

高级可视化效果

1. 热点图

2. 影像镶嵌图

3. 地图可视化

4. 3维图

5. 相关图

R语言 小窍门:

HistData软件包提供了一个小数据集,它很有趣并且在统计和数据可视化的历史上很重要。

基本可视化效果

便签:

  1. 基本图形可以很容易地用R语言进行创建。绘图(plot)命令是要关注的命令。

2. 它的参数有x轴数据、y轴数据、x轴标签、y轴标签、颜色和标题。要创建线图,只需简单地使用参数,类型选择为l。

3. 如果你想要箱式图,你可以选用箱式图(boxplot),要条形图就用条形图函数。

1.直方图

 

基本上,直方图是将数据分解为一个个的小格子(或间隔),并显示它们的频率分布。您可以更改间隔,看看这样做对数据可视化可理解性的影响。

给您举个例子。

注意:我们使用的par(mfrow=c(2,5))命令,为的是清晰地把多个图放在同一页上(参看下面的代码)。

library(RColorBrewer)

data(VADeaths)

par(mfrow=c(2,3))

hist(VADeaths,breaks=10, col=brewer.pal(3,"Set3"),main="Set3 3 colors")

hist(VADeaths,breaks=3 ,col=brewer.pal(3,"Set2"),main="Set2 3 colors")

hist(VADeaths,breaks=7, col=brewer.pal(3,"Set1"),main="Set1 3 colors")

hist(VADeaths,,breaks= 2, col=brewer.pal(8,"Set3"),main="Set3 8 colors")

hist(VADeaths,col=brewer.pal(8,"Greys"),main="Greys 8 colors")

hist(VADeaths,col=brewer.pal(8,"Greens"),main="Greens 8 colors")

请注意,如果间隔数少于被指定的颜色数,颜色会变成极值,如上图中的“Set3 8 colors”图。如果间隔数目超过了颜色的数目,则颜色会开始像在第一行中一样地重复出现。

2.条形图/线型图

线型图

下面的折线图显示了在给定时间内飞机乘客数的增长情况。折线图通常是分析一段时间内延伸趋势的首选。此外,当我们需要比较数量随着某种变量(例如时间)的相对变化时,线型图也是适用的。下面是代码:

plot(AirPassengers,type="l") #Simple Line Plot

条形图

条形图适用于显示跨几个组别的累计汇总之间的比较。层叠图用于跨类别的条形图。下面是代码:

barplot(iris$Petal.Length) #Creating simple Bar Graph

barplot(iris$Sepal.Length,col = brewer.pal(3,"Set1"))

barplot(table(iris$Species,iris$Sepal.Length),col = brewer.pal(3,"Set1")) #Stacked Plot

 

3. 箱式图

箱式图显示5个有统计学意义的数字,分别是最小数、第一四分数位、中位数、第三四分位数和最大数。因此,它在数据延伸的可视化上非常有用,还能得出相应的推论。下面是简单的代码:

boxplot(iris$Petal.Length~iris$Species) #Creating Box Plot between two variable

让我们来理解下面的代码:

在下面的例子中,我在屏幕上显示了4个图。通过使用~符号,我可以将(萼片的长度)的伸展是如何跨各种类别(的物种)进行可视化。我在最后的两个图中演示了调色板。调色板是一组颜色,用来使图标更有吸引力,而且能帮助在数据中创建醒目的区别。

data(iris)

par(mfrow=c(2,2))

boxplot(iris$Sepal.Length,col="red")

boxplot(iris$Sepal.Length~iris$Species,col="red")

oxplot(iris$Sepal.Length~iris$Species,col=heat.colors(3))

boxplot(iris$Sepal.Length~iris$Species,col=topo.colors(3))

要了解更多关于R语言中调色板的使用,请参看http://decisionstats.com/2011/04/21/using-color-palettes-in-r/

4. 散点图(包括3D等功能

散点图有助于轻松地把数据可视化和进行简单的数据检查。这里有简单散点图和多元散点图的代码:

plot(x=iris$Petal.Length) #Simple Scatter Plot

plot(x=iris$Petal.Length,y=iris$Species) #Multivariate Scatter Plot

散点图矩阵可以帮助将彼此交叉的多个变量可视化。

plot(iris,col=brewer.pal(3,"Set1"))

您可能会想,我还没有把饼图列表成基本图形。这不是失误,而是我故意这么做的。这是因为,数据可视化专业人员不赞成使用饼图来表示数据。因为人的眼睛不能像目测线性距离那样精确地目测出圆的距离。只需要简单地把任何可用饼图表示的东西都用线图表示。但是,如果你喜欢饼图,可使用:

pie(table(iris$Species))

到这里为止,我们已经学过的所有图表列表如下:

您可能已经注意到,在一些图表中,他们的标题已被截断,因为我把太多图表放在同一个屏幕上。要改变这一点,你只需要改变par函数的‘mfrow’参数。

原文链接:http://www.analyticsvidhya.com/blog/2015/07/guide-data-visualization-r/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+AnalyticsVidhya+%28Analytics+Vidhya%29

转载于:https://www.cnblogs.com/shujuxiong/p/11183213.html

用R语言进行数据可视化的综合指南(一)相关推荐

  1. R语言时间序列数据可视化: 使用plot函数可视化单序列时间序列数据、多序列时间序列数据并指定不同时间序列的线条类型(lty)

    R语言时间序列数据可视化: 使用plot函数可视化单序列时间序列数据.多序列时间序列数据并指定不同时间序列的线条类型(lty) 目录

  2. R语言ggplot2数据可视化

    R数据科学1_进阶 第一部分 探索 第1章 使用ggplot2进行数据可视化 1.3 图形属性映射 1.4 常见问题 1.5 分面 1.6 几何对象 1.7 统计变换 1.8 位置调整 1.9 坐标系 ...

  3. R语言 类别数据可视化(1)

    目录 一 条形图及其变种 1.简单条形图和帕累托图 (1)条形图 (2)帕累托图 2.并列条形图和堆叠条形图 3.不等宽条形图和脊形图 (1)不等宽条形图 (2)脊形图 二 树状图 1.条形树状图 2 ...

  4. R语言 类别数据可视化(2)

     目录 一 气球图和热图 1.气球图 2.热图 二 南丁格尔玫瑰图 三 金字塔图 四 饼图及其变种 1.饼图 2.扇形图 3.环形图 一 气球图和热图 1.气球图 气球图是用气球大小表示数据的图形,它 ...

  5. R语言配对图可视化:配对图(pair plot)可视化(根据分类变量的值为散点图上的数据点添加颜色和形状、Add color and shape by variables)

    R语言配对图可视化:配对图(pair plot)可视化(根据分类变量的值为散点图上的数据点添加颜色和形状.Add color and shape by variables) 目录

  6. R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join)、配对图可视化(根据分类变量的值为散点图上的数据点添加颜色)

    R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join).配对图可视化(根据分类变量的值为散点图上的数据点添加颜色,Add color ...

  7. R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法、data.table、dplyr等方案、计算分组均值并添加到可视化结果中

    R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法.data.table.dplyr等方案.计算分组均值并添加到可视化结果中 目录

  8. R语言使用ggplot2可视化堆叠条形图,并在堆叠条形图上显示数据值实战

    R语言使用ggplot2可视化堆叠条形图,并在堆叠条形图上显示数据值实战 目录 R语言使用gg

  9. 【视频】主成分分析PCA降维方法和R语言分析葡萄酒可视化实例|数据分享

    最近我们被客户要求撰写关于主成分分析PCA的研究报告,包括一些图形和统计输出.降维技术之一是主成分分析 (PCA) 算法,该算法将可能相关变量的一组观察值转换为一组线性不相关变量.在本文中,我们将讨论 ...

  10. R语言关联规则及其可视化(Foodmart数据)

    R语言关联规则及其可视化(Foodmart数据) 数据集描述 初步探索 关联规则挖掘 关联规则可视化 商品品类的关联规则 关联规则的评价指标 补充 数据集描述 上周数据挖掘学习了关联规则,今天来练习一 ...

最新文章

  1. MDX 中的重要概念 (MDX)
  2. [小结]硬盘分区的知识与意义
  3. JS getAttribute和setAttribute(取得和设置属性)的使用介绍
  4. Linux学习笔记之三
  5. cwntos新建目录挂载磁盘_centos6修改挂载磁盘目录的方法
  6. VTK:PolyData之ExtractSelection
  7. C语言中简单的for循环和浮点型变量
  8. 13c语言中的文件是一种流式文件,读写时均以字符为单位.,C语言判断题部分.doc...
  9. 【今日CS 视觉论文速览】4 Jan 2019
  10. 今天微信小程序发现wx.request不好使了,调试报错: 小程序要求的 TLS 版本必须大于等于 1.2...
  11. python中生成器的两段代码
  12. Android官方命令深入分析之虚拟机
  13. 年轻人的第一个自定义Springboot starter
  14. 这些神奇的 QQ 你还记得几个?
  15. 2. Ruby下载安装
  16. 品优购项目——黑马程序员pink老师/完整源代码/项目讲解
  17. Windows下功能强大注册表整理、修复软件RegClean Pro v6.21多国语言版
  18. Microsoft edge已过期
  19. 如何从巨潮资讯爬取股票公告
  20. 2022-07-25 第五小组 顾祥全 学习笔记 day18-JavaSE-接口

热门文章

  1. c语言程序设计与算法,程序设计与算法(一)C语言程序设计
  2. linux中文件大小的分配,Linux创造固定的文件大小-预分配磁盘空间
  3. php如何隐藏入口文件,php怎么隐藏入口文件
  4. vs没有windows窗体应用_既能防木马病毒又能多开应用,这款软件 Windows 不能没有!...
  5. java浮点类型数据练习_《Java语言程序设计(基础篇)》第二章复习题和编程练习题...
  6. python数据分析:Pandas
  7. PAT之水题:逻辑题、数学问题(素数、多项式、分数、大整数、进制转换)
  8. istio sidecar流量接管_istio 常见的 10 个异常
  9. C语言判断一个数是不是质数(C笔记)
  10. java实时推送_JAVA 基于websocket的前台及后台实时推送