查看原文
其他

[R数据科学] 1.6几何对象

庄闪闪 庄闪闪的R语言手册 2022-06-23

前言

本最近打算把《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)

参考

  1. R for Data Science [https://r4ds.had.co.nz/]


欢迎关注我的公众号,点赞,在看,收藏~~~


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存