以下のようなグラフを描く関数を書いてみるが,仕様がダメダメ(ダメダメグラフの仕様がまともなわけがないので)なので,改造する気にもならない。
プログラムは以下のようなもの
hedo <- function(x, labels=NULL, col=NULL, acc=200)
{
count <- table(x)
pos <- count/max(count)*0.9+0.1
n <- length(pos)
theta <- seq(pi/2, -pi*3/2, length=acc)
x <- cos(theta)
y <- sin(theta)
theta2 <- seq(pi/2, -pi*3/2, length=n+1)
plot(x, y, type="n", col="gray80", asp=1, axes=FALSE, xlab="", ylab="")
for (fraction in seq(0.1, 1.0, length=11)) {
lines(x*fraction, y*fraction, col="gray80")
}
text(-strwidth("0")*0.7, seq(0.1, 1.0, length=11)+strheight("0")*0.3,
sprintf("%3.1f", seq(0, 1, by=0.1 )), pos=4, cex=0.7)
if (is.null(col)) col <- heat.colors(n, alpha=0.6)
for (i in 1:n) {
theta <- seq(theta2[i], theta2[i+1], length=acc)
theta <- c(theta, rev(theta), theta2[i])
fraction <- c(rep(pos[i], acc), rep(0.1, acc), pos[i])
lines(c(0.1, 1.0)*cos(theta2[i]), c(0.1, 1.0)*sin(theta2[i]), col="gray80")
polygon(cos(theta)*fraction, sin(theta)*fraction, col=col[i])
mid <- (theta2[i]+theta2[i+1])/2
text(cos(mid)*1.1, sin(mid)*1.1, paste(labels[i], count[i], sep=":"))
}
}
#hedo(sample(10, 100, replace=TRUE))
hedo(x, labels=LETTERS[1:10])
※コメント投稿者のブログIDはブログ作成者のみに通知されます