研究計画っぽい棒グラフ表示

MikuHatsune2017-03-21

とある研究計画の申請の時期だが、研究をどんな感じで進めていきます、というプレゼンというか図示で時間軸に棒が伸びてる感じの図がある。

学振申請書の書き方とコツ DC/PD獲得を目指す若者へ (KS科学一般書)

学振申請書の書き方とコツ DC/PD獲得を目指す若者へ (KS科学一般書)

これのPD の申請とかに書いてある。
 
某特別研究員の平成29年度までの申請は、年次計画の項がA4 の下半分のスペースだったが、平成30年度はさらに次ページにわたって半ページついているようなので、図で埋めてしまおう。
 
…え? 平成29年度? 反転落ちたわ言わせんな
ちなみにこの図は某研究員申請書を丸々パクっていた別の某研究計画申請書のために作ってたやつ。面接選考までいったけど結果? 反転落ちたわ言わせんな

# 箱に書く文字
contents <- c("実験しろよ", "hoge", "fuga", "bar", "なんかやる", "いろいろやる", "Deep Learning なんてしてみたり", "tmp", "ふがふが", "ほげほげ", "研究しろよ")
# 上半分の色と、下半分の色
cols0 <- c("yellow", grey(0.9))[c(2,1,1,1,1,1,1,1,2,2,1,1,2)]
cols1 <- c("yellow", grey(0.9))[c(2,2,1,1,1,1,2,1,2,2,2)]
# 箱の右端と左端
# 1 が1年分に相当する期間としている
period <- list(
               c(0,4),
               c(0.25,0.75),
               c(0,0.8),
               c(0,2.5),
               c(0,2.5),
               c(0,2.5),
               c(1.5,3.5),
               c(0.5,4),
               c(1,4),
               c(2.5,4),
               c(1.5,4)
               )

#svg("progress.svg", 7*800/630, 7*360/630)
par(mar=c(2.5, 1, 0.5, 1))
plot(1, type="n", xlim=c(0, 4), ylim=c(length(contents), 1)+c(1,-1)*0.2, xlab="", ylab="", xaxt="n", yaxt="n")
axis(1, label=NA)
#axis(2, label=NA)
pa <- par()$usr
text(0:3+0.5, pa[3]+0.3, c("下準備", paste("がくしん", 1:3, "年目")), xpd=TRUE, pos=1, cex=1.5)
abline(v=c(0,2:4), lty=3)
abline(v=1, lty=1, col="black", lwd=2)
dy <- 0.4
for(i in seq(contents)){
  if(i != 7){ # 上半分と下半分の色が違うとき、border の外枠を書かない
  polygon(period[[i]][c(1,2,2,1)], i+dy*c(-1,-1,0,0), col=cols0[i], border=NA)
  polygon(period[[i]][c(1,2,2,1)], i+dy*c(0,0,1,1), col=cols1[i], border=NA)
  polygon(period[[i]][c(1,2,2,1)], i+dy*c(-1,-1,1,1), col=NA, border="black")
  text(period[[i]][1], i, contents[i], pos=4)
  } else {
  polygon(c(0.5,3.5)[c(1,2,2,1)], i+dy*c(-1,-1,1,1), col=cols1[i], border=NA)
  polygon(period[[i]][c(1,2,2,1)], i+dy*c(-1,-1,0,0), col=cols0[i], border=NA)
  polygon(c(0.5,3.5)[c(1,2,2,1)], i+dy*c(-1,-1,1,1), col=NA, border="black")
  text(c(0.5,3.5)[1], i, contents[i], pos=4)
  }
}
xd <- c(0.3, 0.7)+3
for(i in length(contents)-c(1,0)){
  j <- i - 7
  polygon(xd[c(1,2,2,1)], j+dy*c(-1,-1,1,1), col=cols0[i+2],  border="black")
  text(mean(xd), j, c("研究課題", "共同研究")[i%%2+1])
}