[R数据科学] 1.6几何对象
前言
本最近打算把《R数据科学》过一遍,并且把课后习题都做一下。先从第一章开始吧,快速把ggplot过一下。第一章目录如下:
前面几节的内容比较少,第1.5节我对其做了补充,可见R可视乎|分面一页多图,课后练习题也可在该篇文章中找到。
1.6节主要讲几何对象:表示数据的几何图形对象,比如条形图,折线图,箱线图等。要想改变图中的几何对象,需要修改添加在ggplot() 函数中的几何对象函数。1.6节的内容不是很多,我们主要通过写本节的练习来回顾知识点。
练习
(1) 在绘制折线图、箱线图、直方图和分区图时,应该分别使用哪种几何对象?
答:geom_line(), geom_boxplot(), geom_histogram(),(2) 在脑海中运行以下代码,并预测会有何种输出。接着在 R 中运行代码,并检查你的预测是否正确。
ggplot(data = mpg,
mapping = aes(x = displ, y = hwy, color = drv)) +
geom_point() +
geom_smooth(se = FALSE)
想象下:x轴是displ,y轴是hwy,颜色使用drv填充,然后加了一个散点图(中间没有参数,用默认),再加上一个拟合曲线,没有绘制出区间。由于两个集合对象都没有对mapping进行设置,所以会使用原始涂层的aes(x = displ, y = hwy, color = drv))。所以出来的结果,散点图和拟合曲线都是三种颜色。下面是出来的颜色:
(3) show.legend = FALSE 的作用是什么?删除它会发生什么情况?
答:是把图例隐藏了,默认参数是show.legend = TRUE.
(4) geom_smooth() 函数中的 se 参数的作用是什么?
答:可以绘制出区间,当se = TRUE(默认)则会出现区间。
(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)
)
没有什么区别,第一个图在原始上就设定了x,y。后面两个集合对象就可以默认使用前面的设置了。而第二个图则是原始没有设置,而是在集合对象中一一设置了。
第一种方法:简便;第二种方法:灵活,可以设置不同的x,y。
(6) 自己编写 R 代码来生成以下各图
第一个图: x为displ,y为hwy。画了散点图(geom_point)并绘制了拟合曲线(geom_smooth),没加置信区间(se =FALSE)
ggplot(data = mpg,aes(x = displ,y = hwy))+
geom_point(size=3)+
geom_smooth(se=F,size=2)
第二个图: 在第一个基础上根据drv变量绘制了三条拟合曲线,并且没有绘制区间。并且把图例删除了(show.legend = FALSE)
ggplot(data = mpg,aes(x = displ,y = hwy))+
geom_point(size=3)+
geom_smooth(aes(fill=drv),se=F,size=2,show.legend = FALSE)
第三个图: 散点图颜色的颜色根据drv变量进行变化,并且拟合曲线也是和散点图相同颜色(所以可以在最原始图层中加入color=drv),没有拟合曲线的区间,但是有图例(默认就是有的)。
ggplot(data = mpg,aes(x = displ,y = hwy,color=drv))+
geom_point(size=3)+
geom_smooth(se=F,size=2)
第四个图: 根据frv变量给散点图填充,但是只绘制了一条拟合线。所以这里不可以直接放在原始图层里,得放在geom_point()中。
ggplot(data = mpg,aes(x = displ,y = hwy))+
geom_point(aes(color=drv),size=3)+
geom_smooth(se=F,size=2)
第五幅图:在第三幅图基础上改变了拟合曲线的线的类型(linetype)。
ggplot(data = mpg,aes(x = displ,y = hwy,color=drv))+
geom_point(size=3)+
geom_smooth(aes(linetype=drv),se=F,size=2)
第六幅图: 没有拟合曲线,直接将散点图的颜色区分开了,有点像第三幅图的简化版。
ggplot(data = mpg,aes(x = displ,y = hwy,color=drv))+
geom_point(size=3)
参考
R for Data Science [https://r4ds.had.co.nz/]
欢迎关注我的公众号,点赞,在看,收藏~~~