查看原文
其他

数据呈现丨R绘图:七种基础可视化图,您选对了吗?

数据Seminar 2021-06-03

The following article is from R语言 Author 王路情

 笔者邀请您,先思考:

1、如何用R做数据可视化?

2、相关图何时使用?


随着数据量的不断增加,如果没有可视化,就不可能讲故事。数据可视化是一门如何将数字转化为有用知识的艺术。
R编程通过提供一组用来构建可视化和表示数据的内置函数和库,让您学习这种艺术。在可视化技术实现之前,让我们先看看如何选择正确的图表类型。




选择正确的图表类型


有四种基本的表示类型:

  • 对比

  • 组合

  • 分布

  • 关系

要确定哪些最适合您的数据,我建议您回答几个问题,比如:

Q

您想在一个图表中显示多少个变量?

Q

您将为每个变量显示多少个数据点?

Q

您会在一段时间内,或在项目或组中显示值吗?

以下是Andrew Abela博士选择正确图表类型的一个很好的解释:

在您的日常活动中,您会在大多数时间遇到下面列出的7个图表:

  • 散点图

  • 直方图

  • 条形图和堆栈条形图

  • 箱形图

  • 面积图

  • 热图

  • 相关图

我们将使用如下所示的“Big Mart数据”示例来了解如何在R中创建可视化。您可以从此处下载完整数据集小编注:请浏览文末原文链接

现在让我们看看如何在R中使用这些可视化。



1. 散点图


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

在我们上面的Mart数据集中,如果我们想要根据成本数据来显示项目,那么我们可以使用散点图来使用两个连续变量,即Item_Visibility和Item_MRP,如下所示:

这是使用函数ggplot()和geom_point()的简单散点图的R代码:
library(ggplot2) 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以不同的颜色描绘了不同的类别:

增加类别的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创建单独的散点图来使其更清晰,如下所示:

单独的类别分组图表的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. 直方图


何时使用:直方图用于绘制连续变量。它将数据分成箱并显示这些箱的频率分布。我们总是可以更改bin大小并查看它对可视化的影响。

从我们的Smart数据集中,如果我们想要根据成本知道项目的数量,那么我们可以使用连续变量Item_MRP绘制直方图,如下所示:

这是使用函数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. 条形图和堆栈条形图


何时使用:当您想要绘制分类变量或连续变量和分类变量的组合时,建议使用条形图。

从我们的数据集中,如果我们想知道在特定年份建立的市场数量,那么条形图将是最合适的选项,使用变量Establishment Year如下所示:

下面是使用函数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()
左右滑动查看更多

垂直条形图

作为变体,您可以删除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")

左右滑动查看更多

堆积条形图

堆积条形图是条形图的高级版本,用于可视化分类变量的组合。

从我们的数据集中,如果我们想要根据分类变量(如类型(出口类型)和位置(出口位置类型))知道出口数量,堆栈图表将以最有用的方式可视化方案。
这是使用函数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")

左右滑动查看更多




4. 箱形图


何时使用:Box Plots用于绘制分类和连续变量的组合。该图对于可视化数据的传播和检测异常值非常有用。它显示了五个统计上显着的数字 - 最小值,第25百分位数,中位数,第75百分位数和最大值。
从我们的数据集中,如果我们想要识别每个商店的详细商品销售,包括最小,最大和中位数,箱形图可能会有所帮助。此外,它还给出了每个商店的商品销售异常值,如下图所示:

黑点是异常值。异常检测和删除是成功进行数据探索的重要步骤。

这是使用函数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. 面积图


何时使用:面积图用于显示变量或数据集的连续性。它与折线图非常相似,通常用于时间序列图。或者,它也用于绘制连续变量并分析潜在趋势。
从我们的数据集中,当我们想要分析商品销售额的趋势时,可以绘制面积图,如下所示。它显示了基于销售额的网点数量:
这是简单区域图表的R代码,显示使用函数ggplot()和geom_area的Item Outlet Sales的连续性:
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. 热图


何时使用:热图使用颜色的强度(密度)来显示二维图像中两个或三个或多个变量之间的关系。网站的热图分析允许您通过颜色强度探索两个维度作为轴和第三维度。
从我们的数据集中,如果我们想知道每个出口处每个项目的成本,我们可以使用我们的集市数据集中的三个变量项目MRP, Outlet Identifier & 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 = "Item MRP")

左右滑动查看更多




7. 相关图


何时使用:Correlogram用于测试数据集中可用变量之间的相互关系水平。矩阵的单元格可以用阴影或彩色显示,以显示相关值。

颜色越深,变量之间的相关性越高。正相关关系以蓝色显示,负相关以红色显示。颜色强度与共同关系值成比例。
从我们的数据集中,让我们检查项目成本,重量,可见性以及出口建立年份和出口销售从下面的图表之间的相互关系。

在我们的示例中,我们可以看到项目成本和出口销售正相关,而项目权重和可见性负相关:

这是使用函数corrgram()的简单相关图的R代码:
install.packages("corrgram")library(corrgram)
corrgram(train, order=NULL, panel=panel.shade, text.panel=panel.txt,           main="Correlogram")

左右滑动查看更多



现在我想你应该很容易使用R编程中的ggplot2库来可视化数据。
除了可视化之外,您还可以了解有关数据挖掘以及Combine Data from Analytics into R的过程的更多信息。
如需了解更多或有关R编程的任何帮助,请将您的详细信息发给我们评论,我们将很乐意为您提供帮助!

原文链接(含本文示例数据):

https://www.tatvic.com/blog/7-visualizations-learn-r/

版权声明:作者保留权利,严禁修改,转载请注明原文链接。








►往期推荐

回复【Python】👉简单有用易上手

回复【学术前沿】👉机器学习丨大数据

回复【数据资源】👉公开数据

回复【可视化】👉你心心念念的数据呈现

回复【老姚专栏】👉老姚趣谈值得一看



►一周热文

工具&方法丨还没理解主成分分析?理论与stata应用

数据呈现丨R VS Python,可视化效果孰强孰弱?

特别推荐丨老姚专栏:还拎不清主成分分析与因子分析?进来看看

工具&方法丨使用双重差分难?文献中的五套方法解惑

数据呈现 | R绘图:南丁格尔图,展示全国现制饮品店密度分布








数据Seminar

这里是大数据、分析技术与学术研究的三叉路口


作者:王路情出处:R语言推荐:简华(何年华)编辑:青酱







    欢迎扫描👇二维码添加关注    


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存