内容:ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系统。那么本次小编将带着大家对它进行详细的学习。Are you ready?
在ggplot2中,图是采用串联起来(+)号函数创建的。每个函数修改属于自己的部分即可,看一个简单的例子:
install.packages("ggplot2") library(ggplot2) ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point()+ labs(title="Automobile Data",x="Weight",y="Miles Per Gallon")
看看成果:
怎么?有些不懂,好吧,小编来分解一下作图的步骤,记得划重点。
ggplot()初始化图形并且指定要用到的数据来源(mtcars)和变量(wt,mpg)。aes()函数的功能是指定每个变量扮演的角色(aes代表aesthetics,即如何用视觉形式呈现信息)。
再来看看,其实很简单,变量wt的值映射到沿x轴的距离,变量mpg的值映射到沿y轴的距离。
小编的解释是否清楚?
ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point(pch=17,color="blue",size=2)+ geom_smooth(method="lm",color="red",linetype=2)+ labs(title="Automobile Data",x="Weight",y="Miles Per Gallon")
其实,ggplot()函数设置图形但没有自己的视觉输出。使用一个或多个几何函数向图中添加几何对象,简写为了geom(),包括点、线、条、箱线图和阴影区域。labs()函数是可选的,就是添加了注释。此例就是对前一个例子的扩展,怎么样?简单!!!来看看它的真面目吧。
下面我们来升个级打个怪,如何用ggplot2包实现分组和小面化呢?
分组指的是在一个图形中显示两组或多组观察结果,小面化指的是在单独、并排的图形上显示观察组。这样解释,是不是不知所云。那来实战一下吧。
####查看分组和面 mtcars$am<-factor(mtcars$am,levels=c(0,1),labels=c("Automatic","Manual")) mtcars$vs<-factor(mtcars$vs,levels=c(0,1),labels=c("V-Engine","Straight Engine")) mtcars$cyl<-factor(mtcars$cyl) ###绘图 ggplot(data=mtcars,aes(x=hp,y=mpg,shape=cyl,color=cyl))+geom_point(size=3)+ facet_grid(am~vs)+labs(title="Automobile Data by Engine Type", x="Horsepower",y="Miles Per Gallon")
代码是不是很简单?那么智慧附身的你,你来操作一下,看看它的颜值是否配得上你吧!!!
那么我们再来看看用几何函数指定图的类型的相关操作吧
data(singer,package="lattice") ggplot(singer,aes(x=height))+geom_histogram() ggplot(singer,aes(x=voice.part,y=height))+geom_boxplot()
好没有挑战啊,睁大眼睛,跟上我哟。
install.packages("car") library(car) data(Salaries,package="car") ggplot(Salaries,aes(x=rank,y=salary))+geom_boxplot(fill="cornflowerblue",color="black", notch=TRUE)+geom_point(position="jitter",color="blue",alpha=0.5)+ geom_rug(side="1",color="black")
data(singer,package="lattice") ggplot(singer,aes(x=voice.part,y=height))+geom_violin(fill="lightblue") + geom_boxplot(fill="lightgreen",width=0.2)
是不是很符合你的身份,炫~,大家试着操作一下吧,实践出真知,亲力亲为才会有收获哟。好了,我们今天就结束啦,给大家时间缓一缓,下回见哟~