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() ##畫下一幅圖,記得關閉窗口