R for Data Science 第1章 ggplot2数据可视化
参考书籍: R for Data Science书籍简介:https://www.goodreads.com/book/show/33399049-r-for-data-science你将学到什么?典型的数据处理流程:(1)Import:获取存储在文件、数据库、web API中的数据,将其倒入R语言的data frame。(2)Tidy: 将数据存储为符合符合存储数据集的语义的一致...
参考书籍: R for Data Science
书籍链接:https://r4ds.had.co.nz/index.html
参考答案链接:https://jrnold.github.io/r4ds-exercise-solutions/data-visualisation.html
典型数据处理流程

(1)Import:获取存储在文件、数据库、web API中的数据,将其倒入R语言的data frame。
(2)Tidy: 将数据存储为符合符合存储数据集的语义的一致格式。
(3)Transform:转化包括缩小感兴趣的观测范围(如一座城市里的所有人,最后一年的所有数据)、由先存变量的函数创建新的变量(如通过加速度和时间计算速度)和计算一组汇总统计数据(如计数和平均值)。
(4)Visualization:可视化是基础的人类活动。好的可视化能够向你展示意想不到的结果、提出新的问题,还能够帮你发现错误的问题或者你需要手机不同的数据。
(5)Models: 模型是可视化的补充工具,是基本的数学和计算机工具,因此它们通常具有很好的伸缩性。
(6)Communication:数据科学的最后一个步骤,也是任何数据分析计划最重要的部分,你可以跟别人交流你的工作。
注意:
①可视化与建模的优点和缺点是互补的,因此实际分析中可能会反复进行多次。
②上述所有的工具都需要编程programming.
③数据分析可以分为两个部分:hypothesis generation和hypothesis confirmation
ggplot2数据可视化
ggplot2网站:http://had.co.nz/ggplot2/
两种构图语法:Wickham’s grammar and Wilkinson’s grammar
构图的层次语法:http://vita.had.co.nz/papers/layered-grammar.pdf
ggplot2绘图有很多的层:
(1)Aesthetics:美学层(x,y轴、颜色、大小、标签、形状、线宽等)
library(tidyverse)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy,color = class))
ggplot()创建一个坐标系统,可以添加图层;ggplot(data = mpg)创建了一副空的图。
geom_point()增加了一个点图层,创建散点图。
aes()函数的功能是指定每个变量扮演的角色(aes代表aesthetics,即如何用视觉形式呈现信息)
aes的参数包括color、shape、size、stroke等。
(2)Facets:面(划分绘图面板)
通过单个变量划分绘图面板,使用facet_wrap()
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)

结合两个变量划分绘图面,使用facet_grid()
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ cyl)

(3)Geometries:几何客体层(散点图、线图、柱状图、条形图等)
# 用点来描述
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy))
# 用平滑的曲线来描述
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy))
#以drv为分类变量对数据进行分类,然后对各个分类分别作图
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv)) +
geom_point(mapping = aes(x = displ, y = hwy,color = drv))
geom_smooth()基于描述汽车的驱动轮的变量drv, 将汽车划分为三条线。
(4) Statistics:统计层(添加统计信息)
?diamonds
#使用geom_bar绘制条形图
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut))
#使用stat_count绘制条形图
ggplot(data = diamonds) +
stat_count(mapping = aes(x = cut))
geom_bar的默认统计量stat是count,意味着geom_bar()将调用stat_count()。
上述两个命令显示相同的图片,这是因为每一个几何量gemo都对应着一个统计量stat, 每一个统计量stat也对应着一个几何量geom。
ggplot2提供了20个统计函数,每个函数的用法你可用?stat_bin获取帮助,或者查看ggplot2 cheatsheet:
https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf
(5)Position Adjustments:位置调整系统
"identity", "dodge"和 "fill"三个参数的含义:
position = "identity"将直接展示object的位置。会重叠,对于条形图不太适用,常需要设置透明度参数alpha。position = "fill"像栈一样,使每个堆放的条形图高度相同,便于组间的比例比较。position = "dodge"将重复的object直接放在另外一个object的旁边。- 对于散点图可以使用
position = "jitter"为点加上一个很小的随机噪声,避免点的重叠overplotting。
(6) Coordinates System:坐标系(笛卡尔坐标系、极坐标系等)
坐标系系统是ggplot2最复杂的部分,默认的坐标系统是笛卡尔坐标系(x和y独立表示点的位置)。除此之外还有以下坐标系:
coord_flip()交换x轴和y轴。在画横向的箱线图时很有用。coord_quickmap()为映射设置正确的纵横比。如果你要用ggplot2绘制空间数据,那么这一点很重要。、
nz <- map_data("nz")
ggplot(nz, aes(long, lat, group = group)) +
geom_polygon(fill = "white", color = "black")
ggplot(nz, aes(long, lat, group = group)) +
geom_polygon(fill = "white", color = "black") +
coord_quickmap()

coord_polar()用于极坐标系。极坐标能够揭示柱状图和鸡冠图之间的有趣联系。
bar <- ggplot(data = diamonds) +
geom_bar(
mapping = aes(x = cut, fill = cut),
show.legend = FALSE,
width = 1
) +
theme(aspect.ratio = 1) +
labs(x = NULL, y = NULL)
bar + coord_flip()
bar + coord_polar()

更多推荐
所有评论(0)