R语言——ggplot2可视化

1 例子引入

1.ggplot2中,图是采用串联起来的(+)号函数创建的,每个函数修改属于自己的部分。

library("ggplot2")
ggplot(data=mtcars,aes(x=wt,y=mpg))+
geom_point()+
labs(title="Automobile Data",x="weight",y="Miles Per Gallon")

library("ggplot2")
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")

2.ggplot()函数 初始化图形指定数据源和变量。ggplot()设置图形但没有自己的视觉输出,需要几何函数来添加图形

3.aes()函数指定每个变量扮演的角色

4.geom_point()几何函数,创建散点图

5.geom_smooth()几何函数,创建拟合曲线

6labs()可选函数,用来添加注释。

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")

2 用几何函数指定图的类型

ggplot()函数指定要绘制的数据源和变量,集合函数则指定这些变量如何在视觉上进行表示(使用点、条、线和阴影区)

函数添加
geom_bar()条形图
geom_boxplot()箱线图
geom_density()密度图
geom_histogram()直方图
geom_hline()水平线
geom_jitter()抖动图
geom_line()线图
geom_point()散点图
geom_rug()地毯图
geom_smooth()拟合曲线
geom_text()文字注解
geom_violin()小提琴图
geom_vline()垂线
library(ggplot2)
data(singer,package="lattice")
ggplot(singer,aes(x=height))+geom_histogram() 

#注意箱线图要指定出X,y才能达到此效果
ggplot(singer,aes(x=voice.part,y=height))+geom_boxplot()

几何函数还有很多选项可以调整,加以使用

library(ggplot2)
data(Salaries,package="carData")
ggplot(Salaries,aes(x=rank,y=salary))+
geom_boxplot(fill="cornflowerblue",color="black",notch=TRUE)+
geom_point(position="jitter",color="blue",alpha=.5)+
geom_rug(sides="l",color="black")
#箱线图的填充色为cornflowerblue,边线颜色为"black",设置为有凹槽的箱线图
#散点图采取“jitter”,即抖动的形式,颜色为"blue",透明度50%
#地毯图放在左部,颜色为黑色

将小提琴图和箱线图结合成新的图形

data(singer,package="lattice")
ggplot(singer,aes(x=voice.part,y=height))+
geom_violin(fill="lightblue")+
geom_boxplot(fill="lightblue",width=.2)

3 分组

​ 分组是通过ppgplot2图将一个或多个带有诸如颜色、形状、填充、尺寸和线类型的视觉特征的分组变量来完成的。

aes()函数负责分配变量(图形的视觉特征),所以这是一个分配分组变量的自然的地方。

以学术等级分组的大学薪水的密度图

library(car)
data(Salaries,package='car')
library(ggplot2)
ggplot(data=Salaries,aes(x=salary,fill=rank))+geom_density(alpha=.3)
#alpha是设置透明度

博士毕业年数和薪水的散点图

ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,shape=sex))+geom_point()

分组条形图的三个版本

library(cowplot)
p1<-ggplot(Salaries,aes(x=rank,fill=sex))+
geom_bar(position='stack')+labs(title='position="stack"')

p2<-ggplot(Salaries,aes(x=rank,fill=sex))+
geom_bar(position='dodge')+labs(title='position="dodge"')

p3<-ggplot(Salaries,aes(x=rank,fill=sex))+
geom_bar(position='fill')+labs(title='position="fill"')
plot_grid(p1,p2,p3,ncol=3)

[]:

【可以发现,第三个图应该是比例,y轴的标签是错滴】

关于cowplot包plot_gird函数的拼接使用方法https://www.163.com/dy/article/GRQOPGJ30552BFPX.html

奇奇怪怪的实验

library(cowplot)
p1<-ggplot(Salaries,aes(x=rank,fill=sex))+
geom_bar()

p2<-ggplot(Salaries,aes(x=rank))+
geom_bar(fill='red')

p3<-ggplot(Salaries,aes(x=rank,fill='red'))+
geom_bar()
plot_grid(p1,p2,p3,ncol=3)

图1 :sex通过条形图中填充颜色展示

图2:geom_bar(fill=‘red’)每个条形图都用红色填充

图3:aes(fill=‘red’)假定red是变量的名字

通常变量应该设置在aes()函数内,分配常熟应该在aes()函数外

4 刻面

刻面:也就是网格图形。用facet_wrap()函数和facet_grid()函数实现

这样,组在图中并排出现而不是重叠为单一的图形,关系是清晰的。

data(singer,package='lattice')
library(ggplot2)
ggplot(data=singer,aes(x=height))+geom_histogram()+facet_wrap(~voice.part,nrow=4)

包含刻面和分组的图

ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,shape=rank))+geom_point()+facet_grid(.~sex)

data(singer,package='lattice')
library(ggplot2)
ggplot(singer,aes(x=height,fill=voice.part))+
geom_density()+
facet_grid(voice.part~.)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值