更多精彩内容参见云栖社区大数据频道:https://yq.aliyun.com/big-data
R编程允许开发者通过一组内置的函数和库来构建可视化以描绘数据。 在分享可视化的技术实现之前,首先着眼如何选择合适的图表类型。
选择合适的图表类型
基本呈现类型有四种:
-
Comparison
Composition
Distribution
Relationship
为了确定哪一种与数据匹配,不妨先从以下几个方面考虑:
-
在一个图表中显示多少变量?
每个变量显示多少数据点?
基于时间显示值,还是在项目或组之间显示值?
下图恰到好处地描述了如何选择合适的图表类型,出自Andrew Abela博士之手。
在日常工作中,大多数会遇到下面列出的7张图表。
-
Scatter Plot
Histogram
Bar & Stack Bar Chart
Box Plot
Area Chart
Heat Map
Correlogram
下面将通过“Big Mart data”示例来了解如何在R中创建可视化,完整数据集可以从这里下载。
下面来了解如何在R中使用这些可视化
1. Scatter Plot
使用场景:Scatter Plot用于查看两个连续变量之间的关系。
在Mart data中,如果想根据它们的成本数据来可视化项目,那么可以使用两个连续变量的散点图,即Item_Visibility和Item_MRP,如下所示。
这里是使用函数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的不同颜色表示不同的类别。
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. Histogram
使用场景:Histogram用于绘制连续变量。它将数据分成数据仓,并显示这些数据仓的频率分布。这里可以随时改变bin的大小,看看它对可视化的效果。
从Mart data中,如果想了解项目成本计数,那么可以绘制直方图使用连续变量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. Bar & Stack Bar Chart
使用场景:当您想要绘制分类变量或连续变量和分类变量的组合时,建议使用Bar Charts。
从这个数据集中,如果想知道在特定年份建立的货币数量,那么条形图将是最合适的选择,如下所示使用变量成立年份。
下面是使用函数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()参数以获取上述垂直条形图。
要根据单个条形图上的出口类型(分类变量)知道项目权重(连续变量),请使用以下代码:
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数,堆栈图将以最有用的方式显示该场景。
下面是通过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是可行的。 此外,它还给出了每个出口的项目销售的异常值的值,如下图所示。
黑点是离群值。 异常值检测和删除是成功数据探索的关键步骤。下面是使用函数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用于显示变量或数据集的连续性。它与折线图非常相似,通常用于时间序列图。或者,它也用于绘制连续变量并分析潜在趋势。
在数据集中,当分析项目销售额的趋势时,面积图可以如下图所示。 它显示销售额的销售点数。
这里是简单区域图的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,出口标识符和项目类型。
暗部分表示项目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用于测试数据集中可用变量之间的关联程度。矩阵的单元可以被着阴影或着彩色以显示共同关系值。
颜色越深,变量之间的相关性越高。 正相关以蓝色显示,负相关以红色显示。 颜色强度与相关值成正比。
如果检查项目成本、重量、可见性与出口建立年份和出口销售之间的共同关系,如下图所示。
在这个例子中可以看到,物品成本和销售量是正相关的,而物品重量和它的可见度是负相关的。
这里是使用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)
更多深度文章,欢迎关注云栖社区:https://yq.aliyun.com/cloud
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。