tidyverse库ggplot2生成散点图

准备工作

tidyverse库的安装和加载

要想使用ggplot2函数,先要安装和加载tidyverse库

install.packages("tidyverse")
library(tidyverse)

例子中使用的mpg数据框

为了做示范,我们使用tidyverse库中提供的mpg数据框。
想要了解mpg是做什么的

?mpg

数据展示的就是:1999 年至 2008 年 38 种常用车型的燃油经济性数据
在这里插入图片描述

常用到的几个变量:
displ:汽车发动机尺寸
hwy:汽车在高速公路上的燃油效率,单位:英里每加仑

用ggplot创建散点图

直接创建散点图

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))

在这里插入图片描述
从散点图分布,发动机尺寸和燃油率总体呈现负相关。也就是说,从宽泛的角度上讲,发动机尺寸越大,燃油率越低。

解释一下代码:

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))
#指定了数据来源为mpg,并且创建了一个空画布。
#如果你运行这行代码,得到的是一个空页面
#后面的+geom_point()创建了一个散点图
#函数一个很重要的参数是mapping
#maping说明了散点图x坐标数据和y坐标数据。

通过颜色分类

散点图中有一些图远离了回归曲线。
在这里插入图片描述
这时我们推测这些异常值可能和车的种类有关系。
我们可以找到mpg的表格数据,发现class这个变量存储了车的类别信息。通过unique函数来看看到底有多少种车。

unique(mpg$class)
[1] "compact"    "midsize"    "suv"        "2seater"    "minivan"    "pickup"     "subcompact"

那我们想要通过ggplot显示散点图,但是要用不同的颜色标注出不同的类别来。下面的代码就诞生了。

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,color=class))

在这里插入图片描述
给散点图加上颜色之后,我们就能清晰得看见,异常值都属于“2seater”这一类,也就两座车相比之下虽然引擎更大,但燃油率却相对较高。

当然除了用颜色标注之外,我们还可以用散点图的散点大小来分类,也可以用散点的形状来分类。
代码修改只需要把color=class改成size=class,或alpha=class或shape=class。

要注意的点是,上述参数都要在aes()里面。

通过position=jitter来设置噪点,避免遮盖

但是我们知道mpg这个数据集有234个数据。
想确认数据集的数据个数,可以通过以下两种方式:

# view可以通过展示数据表的方式来查看
?view(mpg)
# count可以返回数据集的数量
(count(mpg))

但是能看到,以上的图片中,点数是没有200多个的。这是因为出现了遮蔽(overlapping)的问题。
比如:
在这里插入图片描述
这三个数据集就是重合的,这个时候,我们可以通过position=“jitter”的方式来创造除一种散点的感觉。当然,这样图片展示得就不那么精确了,好处是展现了数据的全部。

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,color=class),position="jitter")

在这里插入图片描述
可以和前面的图对比一下:
在这里插入图片描述

通过facet_wrap来分类

刚刚我们是通过给点做出不同的样式,以便对数据分类。也可以通过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)
# drv:驱动系统的类型,其中f =前轮驱动,r =后轮驱动,4 =四轮驱动
# cyl:气缸数

在这里插入图片描述
如果你只是想要一个变量,可以

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))+facet_grid(.~cyl)

在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值