R语言绘图系列:
- R语言可视化及作图1--基础绘图(par函数,散点图,盒形图,条形图,直方图)
- R语言可视化及作图2--低级绘图函数
- R语言可视化及作图3--图形颜色选取
- R语言可视化及作图4--qplot和ggplot2美学函数
- R语言可视化及作图5--ggplot2基本要素和几何对象汇总
- R语言可视化及作图6--ggplot2之点图、条形图、盒形图、直方图、线图
- R语言可视化及作图7--ggplot2之标签、图例和标题绘制
- R语言可视化及作图8--坐标轴自定义和坐标系转换
- R语言可视化及作图9--主题函数
- R语言可视化及作图10--ggplot2的theme函数
1. 图片分面
p <- ggplot(mpg,aes(displ,cty))+geom_point()
a <- p+facet_grid(.~cyl)
a
根据cyl变量把图形分成4列
b <- p+facet_grid(drv~.)
b
根据drv变量把图形分成3行
c <- p+facet_grid(drv~cyl)
c
每个小图x轴和y轴的轴标签完全一致,会导致极值显示不出来
使用scales参数释放坐标轴刻度
mt <- ggplot(mtcars,aes(mpg,wt,color=factor(cyl)))+geom_point()
mt+facet_grid(.~cyl,scales = 'free')
ggplot(mpg,aes(drv,model))+geom_point()+facet_grid(manufacturer~.,scales = 'free',space = 'free')+
#用三个变量,drv,model和manufacturer进行分面,此处space='free',表示不同分面根据自身数据调整轴取值范围
theme(strip.text.y = element_text(angle = 0))
2. 一页多图
2.1 grid.arrange函数
生成四张图
library(gridExtra)
library(grid)
p1 <- qplot(1:5,1:5)
p4 <- ggplot(mtcars,aes(x=mpg,y=wt))+geom_point()
p3 <- rectGrob(gp=gpar(fill='pink'))
p2 <- textGrob('Basic usage')
#rectGrob()和textGrob()均是grid包中的函数
将四张图拼到一张图
#grid.arrange函数
grid.arrange(p1,p2,p3,p4,ncol=2)
#layout_matrix参数
gs <- lapply(1:8,function(ii)
grobTree(rectGrob(gp=gpar(fill=ii,alpha=0.5)),textGrob(ii)))
layout <- rbind(c(1,1,1,2,3),
c(1,1,1,4,5),
c(6,7,7,8,8))
#rbind生成一个矩阵,图形的排列完全按照该矩阵的排列,1对应第一张图,以此类推。
grid.arrange(grobs=gs,layout_matrix=layout)
2.2 ggrepel包 在图上添加文本,可以自动把叠加的文本分开。
geom_text_repel函数
library(ggrepel)
ggplot(mtcars,aes(wt,mpg))+
geom_point(color='red')+
geom_text_repel(aes(label=rownames(mtcars)),segment.color='blue')+
#此处我们用geom_text_repel()函数添加文字
theme_classic(base_size = 16)