R 合并图片_组图

library(ggplot2)
library(grid)
library(gridExtra)
library(openxlsx)
library(tidyr)
library(scales)

i=1 #第一幅图
#每一个i代表一个分组变量,意味着将同一个分组内的不同类别的数据分别作图,也就是p1,p2,p3
p1
<- ggplot(data3,aes(x=factor(X1),y=data3[,1+i])) + geom_bar(stat="identity",fill="#0072B2")+ geom_text(aes(label=data3[,1+i]),vjust=-1.1)+scale_y_continuous(limits = c(0,100),expand = c(0,0),breaks = seq(0,100,10))+ theme_bw()+theme(axis.text.x = element_text(size=13,face='bold'),title=element_text(size=12,face ='bold') ,panel.grid.major = element_blank(),panel.grid.minor = element_blank(),axis.line = element_line(colour = "black"))+ labs(title=paste("特质",'(',cj[i],')',sep = ''),y='百分等级',x='特质')+geom_line(aes(y=均值,colour='#D55E00',group=1),size=1)+ geom_point(aes(y=均值,colour='yellow'))+ theme(legend.position='none',plot.title=element_text(hjust=0.5,size=12)) ############## 胜任力分部门 ################ p2 <- ggplot(data4,aes(x=factor(X1),y=data4[,1+i])) + geom_bar(stat="identity",fill="#0072B2")+ geom_text(aes(label=data4[,1+i]),vjust=-1.1)+scale_y_continuous(limits = c(0,5),expand = c(0,0),breaks = seq(0,5,1))+ theme_bw()+theme(axis.text.x = element_text(size=13,face='bold',vjust = 1,hjust = 1 ,angle = 45 ),title=element_text(size=12,face ='bold') ,panel.grid.major = element_blank(),panel.grid.minor = element_blank(),axis.line = element_line(colour = "black"))+ labs(title=paste("销售胜任力",'(',cj[i],')',sep = ''),y='分数',x='销售胜任力')+ theme(legend.position='none',plot.title=element_text(hjust=0.5,size=12))+geom_line(aes(y=均值,colour='#D55E00',group=1),size=1)+ geom_point(aes(y=均值,colour='yellow')) #################### 销售类型分部门 ################# p3 <- ggplot(data5,aes(x=factor(X1),y=data5[,1+i])) + geom_bar(stat="identity",fill="#0072B2")+ geom_text(aes(label=percent(data5[,1+i]), ),vjust=-1.1)+ ##这里percent是需要加载scales包的,可以自动将小数点数据转为百分比数据
scale_y_continuous(limits = c(0,1),expand = c(0,0),breaks = seq(0,1,0.1))+ theme_bw()+theme(axis.text.x = element_text(size=13,face='bold',vjust = 1,hjust = 1 ,angle = 45 ),title=element_text(size=12,face ='bold') ,panel.grid.major = element_blank(),panel.grid.minor = element_blank(),axis.line = element_line(colour = "black"))+ labs(title=paste("销售类型",'(',cj[i],')',sep = ''),y='百分比',x='类型')+ theme(legend.position='none',plot.title=element_text(hjust=0.5,size=12))+geom_line(aes(y=均值,colour='#D55E00',group=1),size=1)+ geom_point(aes(y=均值,colour='yellow'))

### angle是调整横坐标刻度值倾斜度的
png('x1.png',width = 1200,height = 700,res=120) ##res函数用来调整png的清晰度
grid.newpage()  ##新建页面
pushViewport(viewport(layout = grid.layout(2,2))) ####将页面分成2*2矩阵
vplayout <- function(x,y){
  viewport(layout.pos.row = x, layout.pos.col = y)
}
print(p1, vp = vplayout(1,1:2))   ###将(1,1)和(1,2)的位置画图c
print(p2, vp = vplayout(2,1))   ###将(2,1)的位置画图b
print(p3, vp = vplayout(2,2))  ###将(2,2)的位置画图a
dev.off() ##画下一幅图,记得关闭窗口

 

posted @ 2018-05-14 21:02  JoAnna_L  阅读(1740)  评论(0编辑  收藏  举报