에 범례 아래 테이블 삽입이 질문에 게시 된 earlier하지만 확인 된 대답에는 문제가 있으므로이 문제를 해결하기 위해 다시 게시하고 있습니다.ggplot2
나는 ggplot2와 파일에 플롯 내가하고자하는 data.frame을 다음 있습니다 :
df = data.frame(mean=c(1.96535,2.133604,1.99303,1.865004,2.181713,1.909511,2.047971,1.676599,2.143763,1.939875,1.816028,1.95465,2.153445,1.802517,2.141799,1.722428),
sd=c(0.0595173,0.03884202,0.0570006,0.04934336,0.04008221,0.05108064,0.0463556,0.06272475,0.04321496,0.05283728,0.05894342,0.05160038,0.04679423,0.05305525,0.04626291,0.0573123),
par=as.factor(c("p","p","m","m","p","p","m","m","m","m","p","p","m","m","p","p")),
group=as.factor(c("iF","iF","iF","iF","iM","iM","iM","iM","RF","RF","RF","RF","RM","RM","RM","RM")),
rep=c(1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2))
이는 ggplot2 객체를 생성하기위한 내 코드입니다 :
p <- ggplot(df,aes(factor(rep),y=mean,ymin=mean-2*sd,ymax=mean+2*sd,color=factor(par)))
p <- p + geom_pointrange()+facet_wrap(~group, ncol = 4)+scale_color_manual(values = c("blue","red"),labels = c("p","m"),name = "par id")
p <- p + ggtitle("test")
p <- p + labs(y="log(y)",x="rep")
내가 추가적으로이 data.frame을 범례 아래 테이블로 추가하는 것입니다 :
leg.df = data.frame(statistic = c("pp(par)","pp(g)","pp(s)","fc(p/m)"), value = c(0.96,0.94,0.78,1.5))
leg.df.grob <- tableGrob(leg.df, gpar.coretext =gpar(fontsize=8),
par.coltext=gpar(fontsize=8),
gpar.rowtext=gpar(fontsize=8))
### final result
library(gridExtra)
pp <- arrangeGrob(p + theme(legend.position = "none"),
arrangeGrob(leg.df.grob, legend), ncol = 2)
그리고, 이론적으로, 내가 사용, 예를 들어, 파일에 pp
을 저장할 수 있습니다 : 불행하게도
ggsave('plot.png',pp)
명령 :
pp <- arrangeGrob(p + theme(legend.position = "none"),
arrangeGrob(leg.df.grob, legend), ncol = 2)
을 그 일이 솔루션 플롯 장치가 열립니다 (정확하게 피하려고하는 것입니다). 또한이 오류가 발생합니다 :
Error in arrangeGrob(leg.df.grob, legend) : input must be grobs!
어떻게 해결할 수 있습니까?
당신은 두 번 같은 질문을해서는 안된다. 수락 된 솔루션에 문제가있는 경우이를 수락 (선택 취소)하고 문제에 대한 해답을 설명하십시오. – agstudy
나는 그것에 동의하고 그것에 대해 나쁘다고 느낀다. 그러나 답을 받아들이는 것 말고는 (나는 지금 막 해왔다.) 두 가지 의견을 덧붙여서 며칠 동안 응답을받지 못했다. 그러나 다시 게시하면 많은 조회수와 허용되는 답변을 몇 분 내에 얻을 수 있습니다. – user1701545