《R Data Science》读书笔记 | 您所在的位置:网站首页 › 启动pyspark使用的命令 › 《R Data Science》读书笔记 |
1.2 练习
(1) 运行 ggplot(data = mpg) ,你会看到什么?
> ggplot(data = mpg)
# 空画布
(2) 数据集 mpg 中有多少行?多少列?
> dim(mpg)
[1] 234 11
# 234行,11列
(3) 变量 drv 的意义是什么?使用 ?mpg 命令阅读帮助文件以找出答案。
> ?mpg
# drv
# f = front-wheel drive, r = rear wheel drive, 4 = 4wd
(4) 使用 hwy 和 cyl 绘制一张散点图。
ggplot(data=mpg)+geom_point(mapping = aes(x=hwy, y=cyl))
[图片上传失败...(image-a89552-1585473252973)] (5) 如果使用 class 和 drv 绘制散点图,会发生什么情况?为什么这张图没什么用处? ggplot(data=mpg)+geom_point(mapping = aes(x=class, y=drv))情况:图中的点没有任何明显趋势。 图没用的原因:绘图所选的两个变量逻辑上一般没有相关性,绘图失去意义。 1.3 练习 (1) 以下这段代码有什么错误?为什么点不是蓝色的? ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = "blue"))color = "blue"应该写到aes()的外部、geom_point()的内部,既: ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), color = "blue")当color = "blue"写到aes()的内部时,会在mpg数据中搜索变量blue作为颜色映射,而mpg数据中没有内容为blue的变量,因此颜色默认选择为图中的颜色。 (2) mpg 中的哪些变量是分类变量?哪些变量是连续变量?(提示:输入 ?mpg 来阅读这个数据集的文档。)当调用 mpg 时,如何才能看到这些信息? 分类变量:"manufacturer" "model" "trans" "drv" "fl" "class" 连续变量:"displ" "year" "cyl" "cty" "hwy"在控制台输入mpg,回车,在数据每一列名的下方会有该列数据的数据类型 (3) 将一个连续变量映射为 color 、 size 和 shape 。对分类变量和连续变量来说,这些图形属性的表现有什么不同? 对于连续变量来说,将一个连续变量映射为 color 和 size 时,图形和图例也会表现为连续,既连续的颜色或大小;但是对于连续变量来说,不能将之映射为shape,因为shape属性本身是不连续的。 对于分类变量来说,color 、 size 和 shape三种属性均可被之映射,每一类别对应一种颜色、大小和形状。 (4) 如果将同一个变量映射为多个图形属性,会发生什么情况?各自显示出其属性。 (5) stroke 这个图形属性的作用是什么?它适用于哪些形状?(提示:使用 ?geom_point 命令。)边框;21-24的图形样式,因为其具有填充和边框 (6) 如果将图形属性映射为非变量名对象,比如 aes(color = displ < 5) ,会发生什么情况?根据所映射的非变量名对象的元素个数,给每个元素分配一种唯一的图形属性。 1.5 练习 (1) 如果使用连续变量进行分面,会发生什么情况?会使得每一页的宽度或高度非常小,不便于观看。 (2) 在使用 facet_grid(drv ~ cyl) 生成的图中,空白单元的意义是什么?它们和以下代码生成的图有什么关系? ggplot(data = mpg) + geom_point(mapping = aes(x = drv, y = cyl))空白单元的意义是这一页所对应的drv和cyl值在数据中没有对应的组合。 上面代码所生成的图中没有点的地方表示没有该组合,对应到分页的代码所生成的图中即为该分页为空白单元。 (3) 以下代码会绘制出什么图? . 的作用是什么? ggplot(data = mpg) +geom_point(mapping = aes(x = displ, y = hwy)) + facet_grid(drv ~ .) ggplot(data = mpg) +geom_point(mapping = aes(x = displ, y = hwy)) + facet_grid(. ~ cyl).的意思是在该维度不做分页。 (4) 查看本节的第一个分面图:ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy)) + facet_wrap(~ class, nrow = 2)与使用图形属性相比,使用分面的优势和劣势分别是什么?如果有一个更大的数据集,你将如何权衡这两种方法的优劣? 优势:根据想要观测的变量将数据分为每一分页,显示出了每一分页中的趋势及不同分页之间的差别 劣势:由于数据被分割为一个个的分页,数据整体的趋势就不能看出来了。对于一个更大的数据来说,分页不分页应该取决于你的目的。如果想看某一变量中每个元素的变化趋势或者对不同的变化趋势进行比较,则选择分页;如果想看数据的整体趋势,则不使用分页。 (5) 阅读 ?facet_wrap 的帮助页面。 nrow 和 ncol 的功能分别是什么?还有哪些选项可以控制分面的布局?为什么函数 facet_grid() 没有变量 nrow 和 ncol ?nrow:分页的行数 ncol:分页的列数 as.table = FALSE、dir = "v"、strip.position = "bottom" 由于facet_wrap是对单个变量进行分页,所以可以设置分页的行数和列数;而函数facet_grid是对两个变量进行分页,无须手动设置行数和列数。 (6) 在使用函数 facet_grid() 时,一般应该将具有更多唯一值的变量放在列上。为什么这么做呢?便于论文排版?这题不知道~~ 1.6 练习 (1) 在绘制折线图、箱线图、直方图和分区图时,应该分别使用哪种几何对象? geom_line geom_boxplot geom_histogram facet_grid (2) 在脑海中运行以下代码,并预测会有何种输出。接着在 R 中运行代码,并检查你的预测是否正确。 ggplot(data = mpg, mapping = aes(x = displ, y = hwy, color = drv)) + geom_point() + geom_smooth(se = FALSE) (3) show.legend = FALSE 的作用是什么?删除它会发生什么情况?你觉得我为什么要在本章前面的示例中使用这句代码? 隐藏图例 图例显示 不知道 (4) geom_smooth() 函数中的 se 参数的作用是什么?显示绘制平滑线的误差 (5) 以下代码生成的两张图有什么区别吗?为什么? ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point() + geom_smooth() ggplot() + geom_point(data = mpg,mapping = aes(x = displ, y = hwy)) + geom_smooth(data = mpg,mapping = aes(x = displ, y = hwy))没区别。将一组映射传递给 ggplot() 函数,ggplot2 会将这些映射作为全局映射应用到图中的每个几何对象中。所以两个代码生成的图相同。 (6) 自己编写 R 代码来生成以下各图。 p1 |
CopyRight 2018-2019 实验室设备网 版权所有 |