最棒的7种R语言数据可视化
随着数据量不断增加,抛开可视化技术讲故事是不可能的。数据可视化是一门将数字转化为有用知识的艺术。
R语言编程提供一套建立可视化和展现数据的内置函数和库,让你学习这门艺术。在可视化的技术实现之前,让我们先看看如何选择正确的图表类型。
选择正确的图表类型
基本的展现类型有如下四种:
1. 比较
2. 组成
3. 分布
4. 关系
为了确定哪一种类型的图表适合你的数据,我建议你应该回答一些问题比如,
§ 在一个图表中你想展现多少个变量?
§ 每个变量中你会显示多少个数据点?
§ 你将要显示的是一段时间,一些个体还是一些组的数值?
下图是AndrewAbela博士关于选择正确的图表类型的一个很好的解释。

在你的日常生活中,大部分时间你会接触到以下7种图表。
1. Scattered
Plot(散点图)
2. Histogram(柱状图)
3. Bar
& Stack Bar Chart (条形图和堆积条形图)
4. Box Plot
(箱线图)
5. Area
Chart(面积图)
6. Heat
Map(热点图)
7. Correlogram(相关图)
我们将使用如下图所示的‘大集市数据’样例来展现如何使用R语言创建可视化。

现在让我们一起看如何使用R语言运用这些可视化。
◇◆◇◆◇
散点图 Scatter Plot
什么时候使用:散点图是用来观察两个连续变量之间的关系。
上述的集市数据集中,如果你想根据成本数据可视化商品,那么我们可以使用两个连续变量的散点图,即下图中的Item_Visibility和
Item_MRP。

这是一个使用带有geom_point()的函数ggplot()的简单散点图R语言代码。
library(ggplot2)
// ggplot2 is an R library forvisualizations train.
ggplot(train,aes(Item_Visibility, Item_MRP)) geom_point()
scale_x_continuous("ItemVisibility", breaks = seq(0,0.35,0.05))
scale_y_continuous("ItemMRP", breaks = seq(0,270,by = 30))
theme_bw()
现在我们可以看到第三个变量,一个提供每种数据集特征的类别变量(Item_Type)。下图中,不同的类别通过不同颜色的item_type表示出来。

增加了category的R语言代码:
ggplot(train,aes(Item_Visibility, Item_MRP)) geom_point(aes(color =
Item_Type))
scale_x_continuous("ItemVisibility", breaks = seq(0,0.35,0.05))
scale_y_continuous("Item MRP",breaks = seq(0,270,by = 30))
theme_bw() labs(title="Scatterplot")
如下图书所示,我们也可以为每个Item_Type单独创建散点图使其之更加直观清晰。

单个类别的散点图R语言代码:
ggplot(train,aes(Item_Visibility, Item_MRP)) geom_point(aes(color =
Item_Type))
scale_x_continuous("ItemVisibility", breaks = seq(0,0.35,0.05))
scale_y_continuous("Item MRP",breaks = seq(0,270,by = 30))
theme_bw() labs(title="Scatterplot") facet_wrap( ~ Item_Type)
这里,facet_wrap将Item_Type包裹在矩阵层中并且发挥了重要作用。
◇◆◇◆◇
柱形图(Histogram)
什么时候使用:柱形图用来绘制连续变量。他将数据分解到箱子中,并且展现这些箱子的分布频率。我们可以不断的改变这些箱子的大小并且观察它对可视化的影响。
我们的集市数据中,如果我们想知道基于成本的商品计数,如下图所示,那么我们可以使用基于连续变量Item_MRP的柱形图。

这是使用带有geom_histogram()的函数ggplot()的简单柱形图R语言代码。
ggplot(train,aes(Item_MRP)) geom_histogram(binwidth = 2)
scale_x_continuous("Item MRP",breaks = seq(0,270,by = 30))
scale_y_continuous("Count", breaks= seq(0,200,by = 20))
labs(title = "Histogram")
◇◆◇◆◇
条形图和堆积条形图(Bar & Stack Bar Chart)
什么时候使用:当你想绘制一个类别变量或者连续变量和类别变量的一个组合时,建议使用条形图。
我们数据集中,如果我们想知道具体年份创建的商店计数时,如下图所示,那么使用变量EstablishmentYear的条形图将是最佳选择。

这是带有一个连续变量的函数ggplot()的简单条形图R语言代码。
ggplot(train,aes(Outlet_Establishment_Year)) geom_bar(fill = "red")
theme_bw()
scale_x_continuous("EstablishmentYear", breaks =
seq(1985,2010))
scale_y_continuous("Count", breaks= seq(0,1500,150))
coord_flip() labs(title = "BarChart") theme_gray()
◇◆◇◆◇
竖形条形图(Vertical Bar Chart)
你可以移除参数coord_flip()将其变换成竖形条形图。

为了了解一个条形图中,基于商店类型(类别变量)的商品重量(连续变量),使用下述代码:
ggplot(train,aes(Item_Type, Item_Weight)) geom_bar(stat =
"identity", fill ="darkblue") scale_x_discrete("Outlet Type")
scale_y_continuous("Item Weight", breaks = seq(0,15000, by = 500))
theme(axis.text.x = element_text(angle = 90, vjust = 0.5))
labs(title ="Bar Chart")
◇◆◇◆◇
堆积条形图(Stacked Bar chart)
堆积条形图是条形图的一种高级版本,用来可视化类别变量的一个组合。
我们的数据集中,如果我们想了解基于类别变量比如种类(OutletType)和位置 (Outlet Location
Type)的商店计数,堆积条形图将会是最佳选择。

这是使用函数ggplot()的简单堆积条形图R语言代码。
ggplot(train,aes(Outlet_Location_Type, fill = Outlet_Type))
geom_bar()
labs(title ="Stacked Bar Chart", x = "Outlet Location Type", y
="Count of Outlets")
◇◆◇◆◇
箱线图(Box Plot)
什么时候使用:箱线图用来绘制类别和连续变量的一个组合。它有助于可视化数据的传播和检测异常值。它展示了统计学中五个显著的数值-最小值,值的25%,中位数,值的75%和最大值。
我们的数据集中,如果我们想要确定每个商店具体商品的销售情况,包括最小值,最大值以及中位数,箱线图将会有帮助。此外,如下图所示它还给出了销售商品的商店信息。

这些黑点表示异常值。异常值检测和去除是成功数据探索的重要一步。
这是使用带有geom_boxplot的函数ggplot()的简单箱线图R语言代码。
ggplot(train,aes(Outlet_Identifier, Item_Outlet_Sales))
geom_boxplot(fill ="red")
scale_y_continuous("ItemOutlet Sales", breaks= seq(0,15000,
by=500))
labs(title = "BoxPlot", x = "Outlet Identifier")
◇◆◇◆◇
面积图(Area Chart)
什么时候使用:面积图用来显示变量或者数据集的连续性。它和线图非常相似,并且通常用来时间序列绘制。此外,它也被用来绘制连续变量和分析潜在趋势。
我们的数据集中,当我们想分析商店商品的销售趋势时,我们可以绘制如下面积图。它显示了基于销售商品的商店计数。

这是带有geom_area的函数ggplot()的显示商店商品销售连续性的简单面积图R语言代码。
ggplot(train,aes(Item_Outlet_Sales)) geom_area(stat = "bin", bins =
30, fill ="steelblue") scale_x_continuous(breaks =
seq(0,11000,1000)) labs(title = "Area Chart", x = "Item Outlet
Sales", y ="Count")
◇◆◇◆◇
热点图(Heat Map)
什么时候使用:热点图使用一张二维图像中颜色的强度(密度)来显示2,3个或者更多变量之间的关系。它允许你探索轴的两个纬度以及颜色密度表示的第三个纬度。
我们的数据集中,如果我们想知道每个商店中每个商品的成本,如下图所示,我们可以使用数据集中的3个变量MRP,OutletIdentifier和Item
Type 来绘制热点图。

黑色部分表示商品MRP接近50。亮一些的部分表示商品MRP接近250。
这是一个使用函数ggplot()的简单热点图R语言代码。
ggplot(train, aes(Outlet_Identifier,Item_Type))
geom_raster(aes(fill = Item_MRP))
labs(title ="Heat Map", x ="Outlet Identifier", y = "Item
Type")
scale_fill_continuous(name = "ItemMRP")
◇◆◇◆◇
相关图(Correlogram)
什么时候使用:相关图用来测试数据中可用变量之间的相关程度。矩阵中小方框可以被添加阴影或者着色来表示相关值。
颜色越深,变量间的相关值越高。正的相关值用蓝色表示,负的相关值用红色表示。颜色密度和相关值成正比关系。
我们的数据集中,让我们通过下图来查看商品成本,重量,可见度与商店成立年份和商店销售之间的相关性。数据分析师培训
我们的例子中,我们可以看到商品成本和商店销售正相关,商品重量和可见度负相关。

这是使用函数corrgram()的简单相关图R语言代码。
install.packages("corrgram")
library(corrgram)
corrgram(train,order=NULL, panel=panel.shade,
text.panel=panel.txt,
main="Correlogram")
现在我想你使用起来R语言编程中的ggplot2库将会很容易了。
最棒的7种R语言数据可视化的更多相关文章
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...
- 第五篇:R语言数据可视化之散点图
散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...
- 第四篇:R语言数据可视化之折线图、堆积图、堆积面积图
折线图简介 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先 ...
- 第三篇:R语言数据可视化之条形图
条形图简介 数据可视化中,最常用的图非条形图莫属,它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.其中有两点要重点注意: 1. 条形图横轴上的数据是离散而非连续的.比如想展示两商品的价格 ...
- 第二篇:R语言数据可视化之数据塑形技术
前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节 ...
- 第一篇:R语言数据可视化概述(基于ggplot2)
前言 ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发 ...
- 吴裕雄--天生自然 R语言数据可视化绘图(3)
par(ask=TRUE) opar <- par(no.readonly=TRUE) # record current settings # Listing 11.1 - A scatter ...
- 吴裕雄--天生自然 R语言数据可视化绘图(4)
par(ask=TRUE) # Basic scatterplot library(ggplot2) ggplot(data=mtcars, aes(x=wt, y=mpg)) + geom_poin ...
- 吴裕雄--天生自然 R语言数据可视化绘图(2)
par(ask=TRUE) opar <- par(no.readonly=TRUE) # save original parameter settings library(vcd) count ...
随机推荐
- 自动ftp脚本,aix/linux 和 windows
首先windows @echo off REM 基本配置 REM 远程信息 set remote_ip=%1 set remote_user=%2 set remote_passwd=%3 set r ...
- Opencv稍微高级点的鼠标事件-OpenCV步步精深
今天我们要来点稍微高级的东西.在我们按下鼠标时可以画矩形,而我们按下键盘m键时,切换到画圆的模式,再按下m键,回到画矩形模式. 一起来写下代码,首先当然还是调用库 import cv2 import ...
- python接口自动化(接口基础)
一.什么是接口? 前端负责展示和收集数据 后端负责处理数据,返回对应的结果 接口是前端与后端之间的桥梁,传递数据的通道 二.
- Java基础知识之常见关键字以及概念总结
static 特点: 随着类的加载而加载 优先于对象存在 被所有对象所共享 可以直接被类名调用 使用注意: 静态方法只能访问静态成员 但是非静态成员可以直接访问静态成员 静态方法中不可用使用this, ...
- C++类成员变量多用指针不用对象
如A类的成员变量含有B类的对象,那么每个A类对象产生或拷贝都要产生一次B类对象的构造或者拷贝,对象占的空间比较大,对象拷贝比较消耗内存. 如果换成B类的指针,A类对象拷贝,也只会产生4个字节或者8个字 ...
- Ansible配置及使用
使用公私钥实现ssh无密码登录 生成公钥和私钥 ssh-keygen -t rsa 公钥相当于锁id_rsa.pub,私钥相当于钥匙id_rsa 借用ssh-copy-id工具实现无密码登录 ssh- ...
- asprise-ocr-api-sample 高价收破解版64 32位
asprise-ocr-api-sample验证码 高价收破解版64 32位 Reflector 8.5 打开自己的C#代码 完全100%的反编译了
- C# - Finalize 和 Dispose
重要: https://www.cnblogs.com/Jessy/articles/2552839.html https://blog.csdn.net/daxia666/article/detai ...
- p分位数的原理及计算
p分位数的原理及计算 大纲>> 1.统计上的分位数概念 2.分位数的计算方法及举例 2.1首先确定p分位数的位置(依据项数分为基数.偶数情况) 2.2 求上一步确定的p分位数位置处的具 ...
- 分享一些PPT模板
链接:https://pan.baidu.com/s/1ADlYzx7sWR2z0ltVt8kIAQ 提取码:tyzv