CX's 'reality distortion' pie-graph (フジTV のステマ円グラフ)
元のプログラムは,無駄なことをしているので,プログラムが長く煩雑で,何をやっているのかわかりにくくなっている。
for (i in 1:length(num)) {
x <- c(0.5 + dx, 0.5 + 0.5 * sin(rad[i]), 0.5 + 0.5 * sin(seq(rad[i], rad[i+1], length.out=div)), 0.5 + 0.5 * sin(rad[i+1]))
y <- c(0.5 + dy, 0.5 + 0.5 * cos(rad[i]), 0.5 + 0.5 * cos(seq(rad[i], rad[i+1], length.out=div)), 0.5 + 0.5 * cos(rad[i+1]))
grid.polygon(x=x, y=y, gp=gpar(fill=colors[i]))
grid.text(引数省略)
}
grid.polygon を描くところは,以下のようにすればよい。
0.5 * sin(rad[i]),0.5 * sin(rad[i+1]) などを付け加える必要はない。
theta も一度計算しておけばよい。
for (i in 1:length(num)) {
theta <- seq(rad[i], rad[i+1], length.out = div)
x <- c(dx, 0.5 * sin(theta))
y <- c(dy, 0.5 * cos(theta))
grid.polygon(x = 0.5 + x, y = 0.5 + y, gp = gpar(fill = colors[i]))
grid.text(引数省略)
}
※コメント投稿者のブログIDはブログ作成者のみに通知されます