数据呈现丨R绘图:七种基础可视化图,您选对了吗?
The following article is from R语言 Author 王路情
笔者邀请您,先思考:
1、如何用R做数据可视化?
2、相关图何时使用?
有四种基本的表示类型:
对比
组合
分布
关系
Q
您想在一个图表中显示多少个变量?
Q
您将为每个变量显示多少个数据点?
Q
您会在一段时间内,或在项目或组中显示值吗?
以下是Andrew Abela博士选择正确图表类型的一个很好的解释:
在您的日常活动中,您会在大多数时间遇到下面列出的7个图表:
散点图
直方图
条形图和堆栈条形图
箱形图
面积图
热图
相关图
我们将使用如下所示的“Big Mart数据”示例来了解如何在R中创建可视化。您可以从此处下载完整数据集(小编注:请浏览文末原文链接)。
1. 散点图
何时使用:Scatter Plot用于查看两个连续变量之间的关系。
在我们上面的Mart数据集中,如果我们想要根据成本数据来显示项目,那么我们可以使用散点图来使用两个连续变量,即Item_Visibility和Item_MRP,如下所示:
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()
左右滑动查看更多
增加类别的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创建单独的散点图来使其更清晰,如下所示:
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)
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(train, aes(Outlet_Location_Type, fill = Outlet_Type)) + geom_bar()+
labs(title = "Stacked Bar Chart", x = "Outlet Location Type", y = "Count of Outlets")
左右滑动查看更多
4. 箱形图
黑点是异常值。异常检测和删除是成功进行数据探索的重要步骤。
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. 面积图
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. 热图
这是使用函数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用于测试数据集中可用变量之间的相互关系水平。矩阵的单元格可以用阴影或彩色显示,以显示相关值。
在我们的示例中,我们可以看到项目成本和出口销售正相关,而项目权重和可见性负相关:
install.packages("corrgram")
library(corrgram)
corrgram(train, order=NULL, panel=panel.shade, text.panel=panel.txt,
main="Correlogram")
左右滑动查看更多
原文链接(含本文示例数据):
https://www.tatvic.com/blog/7-visualizations-learn-r/
►往期推荐
回复【Python】👉简单有用易上手
回复【学术前沿】👉机器学习丨大数据
回复【数据资源】👉公开数据
回复【可视化】👉你心心念念的数据呈现
回复【老姚专栏】👉老姚趣谈值得一看
►一周热文
数据呈现 | R绘图:南丁格尔图,展示全国现制饮品店密度分布
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
欢迎扫描👇二维码添加关注