一.基础知识
首先载入tidyverse包
# install.packages("tidyverse")
library(tidyverse)
这一行代码加载了tidyverse的核心R包。在几乎所有的数据分析任务中,你都会用到这些R包。这行代码还会告诉你tidyverse中的哪些函数与基础R包(或者已加载的其他R包)中的函数有冲突。
本文使用r语言自带的数据框,mpg来操作
1.绘制基础散点图:
mpg
ggplot(mpg,aes(displ,hwy))+geom_point()
注意ggplot只接受数据框格式,,aes()函数的x参数和y参数分别指定了映射到x轴的变量与映射到y轴的变量。ggplot2在data参数中寻找映射变量,本例中就是mpg。
aes(displ,hwy)分别是x轴和y轴,geom_point()是绘制散点图
可以看出随着displ的增大,hwy总体是减少的。
1.1图形映射
这些车有不同的类型,通过color=class可以为不同的种类添加颜色
ggplot(mpg,aes(displ,hwy))+geom_point(aes(color=class))
如果你想设置图片整体为单个颜色,比如蓝色,只需要:
ggplot(mpg,aes(displ,hwy))+geom_point(color="blue")
但是如果你这么输入:
ggplot(mpg,aes(displ,hwy))+geom_point(aes(color="blue"))
将不会达到你想要的结果,
可以看到输出结果是红色,不是蓝色,事实上你把bule改为任何颜色结果都是红色,因为aes是分别映射。
你也通过alpha=class,将class映射为控制数据透明度alpha图片属性
ggplot(mpg,aes(displ,hwy))+geom_point(aes(color=class,alpha=class))
不过会出现警告信息:
离散变量不建议使用
也可以使用shape为不同的种类添加不同的形状
ggplot(mpg,aes(displ,hwy))+geom_point(aes(color=class,shape=class))
虽然能输出,但suv这里是空的,gplot2只能同时使用6种形状。默认情况下,当使用这种图形属性时,多出的变量值将不会出现在图中。
2.分面:
添加额外变量的一种方法是使用图形属性。另一种方法是将图分割成多个分面,即可以显示数据子集的子图。这种方法特别适合添加分类变量。
要想通过单个变量对图进行分面,可以使用函数facet_wrap()。其第一个参数是一个公式,创建公式的方式是在~符号后面加一个变量名(这里所说的“公式”是R中的一种数据结构,不是数学意义上的公式)。传递给facet_wrap()的变量应该是离散型的。
lot(mpg,aes(displ,hwy))+geom_point(aes(color=class))+facet_wrap(~class,nrow=2)
这里就对车的不同类型完成了分面。