R语言中值得学习的7个可视化,附代码段&案例数据集

简介: 随着数据量的不断增加,不使用可视化来描述事例是不可能的。 数据可视化是一种将数字转化为有用知识的艺术。

更多精彩内容参见云栖社区大数据频道https://yq.aliyun.com/big-data

R编程允许开发者通过一组内置的函数和库来构建可视化以描绘数据。 在分享可视化的技术实现之前,首先着眼如何选择合适的图表类型。

选择合适的图表类型

基本呈现类型有四种:

  • Comparison
  • Composition
  • Distribution
  • Relationship

为了确定哪一种与数据匹配,不妨先从以下几个方面考虑:

  • 在一个图表中显示多少变量?
  • 每个变量显示多少数据点?
  • 基于时间显示值,还是在项目或组之间显示值?

下图恰到好处地描述了如何选择合适的图表类型,出自Andrew Abela博士之手。

80bf899f889f5b3033a3ae89ff1f5e42e27e3d88

在日常工作中,大多数会遇到下面列出的7张图表。

  • Scatter Plot
  • Histogram
  • Bar & Stack Bar Chart
  • Box Plot
  • Area Chart
  • Heat Map
  • Correlogram

下面将通过“Big Mart data”示例来了解如何在R中创建可视化,完整数据集可以从这里下载。

9f1c26a639a2b938481180668a3716f0084694bb

下面来了解如何在R中使用这些可视化

1. Scatter Plot

使用场景:Scatter Plot用于查看两个连续变量之间的关系。

在Mart data中,如果想根据它们的成本数据来可视化项目,那么可以使用两个连续变量的散点图,即Item_Visibility和Item_MRP,如下所示。

18497f094ab836b1b6e7f3e34ca71b402e2fca56

这里是使用函数ggplot()和geom_point()的简单散点图的R代码。

library(ggplot2)          // ggplot2 is an R library for visualizations train.
ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point() + scale_x_continuous("Item Visibility", breaks = seq(0,0.35,0.05))+ scale_y_continuous("Item MRP", breaks = seq(0,270,by = 30))+ theme_bw() 
现在,可以在同一个图表中查看第三个变量,比如一个分类变量(Item_Type),它将给出每个数据集的特征(item_type)。 在下面的图表中,item_type的不同颜色表示不同的类别。
3e6ead8942eca490ac298d73c7d7b02cefbc2461

R代码加上类别:


ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point(aes(color = Item_Type)) + 
  scale_x_continuous("Item Visibility", 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创建单独的散点图,使其更加直观清晰,如下所示。
b16a879f094f78ee0194b43f6f94981794e3c3ba

单独类别图表的R代码:

ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point(aes(color = Item_Type)) + 
  scale_x_continuous("Item Visibility", 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。

2. Histogram

使用场景:Histogram用于绘制连续变量。它将数据分成数据仓,并显示这些数据仓的频率分布。这里可以随时改变bin的大小,看看它对可视化的效果。

从Mart data中,如果想了解项目成本计数,那么可以绘制直方图使用连续变量Item_MRP如下所示。

bc1120eda63490cff17e4a53880865d600f633ca

这里是使用函数ggplot()和geom_histogram()的简单直方图的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")

3. Bar & Stack Bar Chart

使用场景:当您想要绘制分类变量或连续变量和分类变量的组合时,建议使用Bar Charts。

从这个数据集中,如果想知道在特定年份建立的货币数量,那么条形图将是最合适的选择,如下所示使用变量成立年份。

cf5a944b4bd5c9b3128239e3b5087acfc4927220

下面是使用函数ggplot()的单个连续变量的简单条形图的R代码。

ggplot(train, aes(Outlet_Establishment_Year)) + geom_bar(fill = "red")+theme_bw()+
  scale_x_continuous("Establishment Year", breaks = seq(1985,2010)) + 
  scale_y_continuous("Count", breaks = seq(0,1500,150)) +
  coord_flip()+ labs(title = "Bar Chart") + theme_gray()

Vertical Bar Chart:

作为变体,可以删除coord_flip()参数以获取上述垂直条形图。

308648fa6d10fa8981012b3ac81361e34438ea12

要根据单个条形图上的出口类型(分类变量)知道项目权重(连续变量),请使用以下代码:

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:
Stacked Bar chart是条形图的高级版本,用于可视化分类变量的组合。
在这个数据集中,如果想知道基于分类变量如类型(Outlet Type)和位置(Outlet Location Type)的outlet数,堆栈图将以最有用的方式显示该场景。
bc31cde223c149c9551bd02f22d4f5233be3998f
下面是通过ggplot()函数实现简单堆叠条形图的R代码。

gplot(train, aes(Outlet_Location_Type, fill = Outlet_Type)) + geom_bar()+
labs(title = "Stacked Bar Chart", x = "Outlet Location Type", y = "Count of Outlets")

4. Box Plot

使用场景:Box Plot用于绘制分类和连续变量的组合。 此图用于可视化数据的扩展和检测异常值。 它显示五个统计上显著的数字——最小值,第25百分位数,中值,第75百分位数和最大值。

从数据集中,如果期望确定每个出口的详细项目销售包括最小,最大和中间数字,Box Plot是可行的。 此外,它还给出了每个出口的项目销售的异常值的值,如下图所示。

9de5cc9c51c157b66fcbfd6ee9df5e0d19a67607

黑点是离群值。 异常值检测和删除是成功数据探索的关键步骤。下面是使用函数ggplot()和geom_boxplot的简单框图的R代码。

ggplot(train, aes(Outlet_Identifier, Item_Outlet_Sales)) + geom_boxplot(fill = "red")+
scale_y_continuous("Item Outlet Sales", breaks= seq(0,15000, by=500))+
labs(title = "Box Plot", x = "Outlet Identifier")

5. Area Chart

使用场景:Area Chart用于显示变量或数据集的连续性。它与折线图非常相似,通常用于时间序列图。或者,它也用于绘制连续变量并分析潜在趋势。

在数据集中,当分析项目销售额的趋势时,面积图可以如下图所示。 它显示销售额的销售点数。

bda4d4ab5d29b616ccfda26b7021f099389e659a

这里是简单区域图的R代码,显示项目出口销售的连续性,使用函数ggplot()和geom_area。

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") 

6. Heat Map

使用场景:Heat Map使用颜色的强度(密度)来显示二维图像中的两个、三个或多个变量之间的关系。 它允许使用两个维度作为轴和第三个维度用作颜色的强度。

在这个数据集中,如果想知道每个出口的每个项目的成本,就可以使用Heat Map,如下所示使用从mart数据集中的三个变量项目MRP,出口标识符和项目类型。

a040b8037f5465ccbb43aa8b6c2deccc3a44cd52

暗部分表示项目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 = "Item MRP") 

7. Correlogram

使用场景:Correlogram用于测试数据集中可用变量之间的关联程度。矩阵的单元可以被着阴影或着彩色以显示共同关系值。

颜色越深,变量之间的相关性越高。 正相关以蓝色显示,负相关以红色显示。 颜色强度与相关值成正比。

如果检查项目成本、重量、可见性与出口建立年份和出口销售之间的共同关系,如下图所示。

在这个例子中可以看到,物品成本和销售量是正相关的,而物品重量和它的可见度是负相关的。

92c32a6eb3c871b634975bd6c444752a9c3dfc43

这里是使用functioncorrgram()的简单自相关图的R代码。

install.packages("corrgram")
library(corrgram)

corrgram(train, order=NULL, panel=panel.shade, text.panel=panel.txt,
           main="Correlogram") 
通过这个教程,相信大家对R编程中使用gplot2库来对数据进行可视化已经有所理解。

原文链接:7 Visualizations You Should Learn in R (作者/Dikesh Jariwala)

相关文章
|
4月前
|
数据可视化 数据挖掘 图形学
R语言基础可视化:使用ggplot2构建精美图形的探索
【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
|
4月前
|
数据可视化 数据挖掘 数据处理
R语言高级可视化技巧:使用Plotly与Shiny制作互动图表
【8月更文挑战第30天】通过使用`plotly`和`shiny`,我们可以轻松地创建高度互动的数据可视化图表。这不仅增强了图表的表现力,还提高了用户与数据的交互性,使得数据探索变得更加直观和高效。本文仅介绍了基本的使用方法,`plotly`和`shiny`还提供了更多高级功能和自定义选项,等待你去探索和发现。希望这篇文章能帮助你掌握使用`plotly`和`shiny`制作互动图表的技巧,并在你的数据分析和可视化工作中发挥更大的作用。
|
7月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
4月前
|
数据可视化
R语言可视化设计原则:打造吸引力十足的数据可视化
【8月更文挑战第30天】R语言可视化设计是一个综合性的过程,需要综合运用多个设计原则来创作出吸引力十足的作品。通过明确目标、选择合适的图表类型、合理运用色彩与视觉层次、明确标注与引导视线以及引入互动性与动态效果等原则的应用,你可以显著提升你的数据可视化作品的吸引力和实用性。希望本文能为你提供一些有益的启示和帮助。
|
7月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
7月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
7月前
|
移动开发 数据可视化
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
46 3
|
7月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为