グラフィックス参考実例集:自作グラフィックス投稿欄
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
COLOR(red){SIZE(20){グラフィックス参考実例集:自作グラフ...
([[グラフィックス参考実例集]]に戻る。[[Rのグラフィックス...
グラフィックスはプログラムと同様(もしくはそれ以上に)時間...
例があれば、大いにヒントになります。車輪を二度発明する無...
苦労して作った作品を是非紹介して下さい。傑作はもちろんで...
特に苦労した点があれば後進の参考になります。はまりやすか...
グラフは png デバイスで出力すると投稿に便利です。また、コ...
いただくと cut and paste で他の人が試すのに便利だと思いま...
注:画像の投稿は該当ページ下のアイコンの左から5番目を押...
#contents
~
** テンプレート [#u8dd4a6b]
foo <- function () {
old.par <- par(no.readonly = TRUE)
on.exit(par(old.par))
png("foo.png")
---- グラフィックス命令 ----
dev.off()
}
#ref(foo.png, left)
例えば画面を複数に分割したグラフィックス等では、何故か X1...
---- グラフィックス命令を X11 画面に出力 ----
pp <- recordPlot() # 作図内容を記録
png("foo.png") # png デバイスを開く
replayPlot(pp) # png デバイスに再現
dev.off()
* GIFアニメーション [#z5a360ee]
for (i in formatC(1:20,width=2,flag="0")) {
a <- data.frame(rnorm(26),rnorm(26))
eval(parse(text=paste("png(file=\"",i,".png\")",sep=""...
plot(a, pch=LETTERS, col=rainbow(26), axes=F, xlab="",...
dev.off()
}
system("convert -loop 0 -delay 20 -transparent '#ffffff...
system("rm -i [0-9]*.png")
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/a...
*グラフィックスアート 極座標による花のグラフィックス [#w7...
[[余談/お花1]]
*領域右端にチックマークとそのラベルを270度回転して表示 [#...
test <- function () {
oldpar <- par(no.readonly = TRUE); on.exit(par(oldpar))...
par(xpd=T) # text()関数で描画領域の余白に書くことを許す
plot(1:10)
axis(4, labels=F) # 領域の右端にラベル無しでチックマー...
text(rep(11, 5), seq(2,10,2), seq(2,10,2), srt=270) # ...
}
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/t...
* グラフの一部を疑似的に透明にする(NA 値による image) r-...
> # イメージ図をまず描く
> z=matrix(outer(1:10,1:10,"*"),10,10)
> image(z)
> # 50 以上の値を NA にする
> z[z>50] = NA
> # 別のグラフィックスを描く
> plot(runif(1000),runif(1000))
> # z を再び image 関数で描く(その際 NA 値の部分は何も描...
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/t...
* 球の三次元プロット (r-help 記事より, 2003.12.27) [#wac...
まず persp 関数で空の三次元プロットを生成。次に、それを "...
pmat <- persp(0:1, 0:1, matrix(,2,2), xlim=c(-1,1), ylim...
zlim=c(-1,1), theta=25, phi=30, expand=.9, xlab="X", y...
trans3d <- function(x,y,z, pmat) { # From the help f...
tr <- cbind(x,y,z,1) %*% pmat
list(x = tr[,1]/tr[,4], y= tr[,2]/tr[,4])
}
theta <- seq(0, 2*pi, length=51)
phi <- seq(0, pi, length=26)
x <- cos(theta) %o% sin(phi)
y <- sin(theta) %o% sin(phi)
z <- rep(1, length(theta)) %o% cos(phi)
for (j in seq(phi)[-1]) for (i in seq(theta)[-1]) {
idx <- rbind(c(i-1,j-1), c(i,j-1), c(i,j), c(i-1,j))
polygon(trans3d(x[idx], y[idx], z[idx], pmat))
}
> image(z,add=T)
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/s...
* 球の三次元プロット2 scatterplot3d の利用 (r-help 記事...
> library(scatterplot3d) # アドオンパッケージ scatterpl...
> a=seq(-pi,pi, length=100)
> x=c(rep(1, 100) %*% t(cos(a)))
> y=c(cos(a) %*% t(sin(a)))
> z=c(sin(a) %*% t(sin(a)))
> scatterplot3d(x, y, z, type="l")
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/s...
* Voronoi ダイアグラム (アドオンパッケージ tripack) 2003....
> library(tripack) # アドオンパッケージ tripack 使用
> coords <- cbind(runif(100), runif(100)) # ランダムな点...
> plot(coords, pch=19, col="blue")
> plot(voronoi.mosaic(coords[,1], coords[,2], duplicate ...
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/t...
* 帯グラフ 2003.3.3 [#nf7cf1ca]
> data(HairEyeColor)
> a <- as.table( apply(HairEyeColor, c(1,2), sum) )
> b <- a / apply(a, 1, sum)
> barplot(t(b),horiz=TRUE, axes=F)
> d.seg.ys <- rep((0.2 + 1) * 1:(ncol(t(b)) - 1), each=n...
> d.seg.ye <- rep((0.2 + 1) * 2:ncol(t(b)) - 1, each=nro...
> d.seg.xs <- apply(t(b)[,1:(ncol(t(b)) - 1)], 2, cumsum)
> d.seg.xe <- apply(t(b)[,2:ncol(t(b))], 2, cumsum)
> segments(d.seg.xs, d.seg.ys, d.seg.xe, d.seg.ye)
> axis(1,seq(0,1,by=0.2),paste(seq(0,100,by=20),"%"))
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/o...
終了行:
COLOR(red){SIZE(20){グラフィックス参考実例集:自作グラフ...
([[グラフィックス参考実例集]]に戻る。[[Rのグラフィックス...
グラフィックスはプログラムと同様(もしくはそれ以上に)時間...
例があれば、大いにヒントになります。車輪を二度発明する無...
苦労して作った作品を是非紹介して下さい。傑作はもちろんで...
特に苦労した点があれば後進の参考になります。はまりやすか...
グラフは png デバイスで出力すると投稿に便利です。また、コ...
いただくと cut and paste で他の人が試すのに便利だと思いま...
注:画像の投稿は該当ページ下のアイコンの左から5番目を押...
#contents
~
** テンプレート [#u8dd4a6b]
foo <- function () {
old.par <- par(no.readonly = TRUE)
on.exit(par(old.par))
png("foo.png")
---- グラフィックス命令 ----
dev.off()
}
#ref(foo.png, left)
例えば画面を複数に分割したグラフィックス等では、何故か X1...
---- グラフィックス命令を X11 画面に出力 ----
pp <- recordPlot() # 作図内容を記録
png("foo.png") # png デバイスを開く
replayPlot(pp) # png デバイスに再現
dev.off()
* GIFアニメーション [#z5a360ee]
for (i in formatC(1:20,width=2,flag="0")) {
a <- data.frame(rnorm(26),rnorm(26))
eval(parse(text=paste("png(file=\"",i,".png\")",sep=""...
plot(a, pch=LETTERS, col=rainbow(26), axes=F, xlab="",...
dev.off()
}
system("convert -loop 0 -delay 20 -transparent '#ffffff...
system("rm -i [0-9]*.png")
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/a...
*グラフィックスアート 極座標による花のグラフィックス [#w7...
[[余談/お花1]]
*領域右端にチックマークとそのラベルを270度回転して表示 [#...
test <- function () {
oldpar <- par(no.readonly = TRUE); on.exit(par(oldpar))...
par(xpd=T) # text()関数で描画領域の余白に書くことを許す
plot(1:10)
axis(4, labels=F) # 領域の右端にラベル無しでチックマー...
text(rep(11, 5), seq(2,10,2), seq(2,10,2), srt=270) # ...
}
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/t...
* グラフの一部を疑似的に透明にする(NA 値による image) r-...
> # イメージ図をまず描く
> z=matrix(outer(1:10,1:10,"*"),10,10)
> image(z)
> # 50 以上の値を NA にする
> z[z>50] = NA
> # 別のグラフィックスを描く
> plot(runif(1000),runif(1000))
> # z を再び image 関数で描く(その際 NA 値の部分は何も描...
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/t...
* 球の三次元プロット (r-help 記事より, 2003.12.27) [#wac...
まず persp 関数で空の三次元プロットを生成。次に、それを "...
pmat <- persp(0:1, 0:1, matrix(,2,2), xlim=c(-1,1), ylim...
zlim=c(-1,1), theta=25, phi=30, expand=.9, xlab="X", y...
trans3d <- function(x,y,z, pmat) { # From the help f...
tr <- cbind(x,y,z,1) %*% pmat
list(x = tr[,1]/tr[,4], y= tr[,2]/tr[,4])
}
theta <- seq(0, 2*pi, length=51)
phi <- seq(0, pi, length=26)
x <- cos(theta) %o% sin(phi)
y <- sin(theta) %o% sin(phi)
z <- rep(1, length(theta)) %o% cos(phi)
for (j in seq(phi)[-1]) for (i in seq(theta)[-1]) {
idx <- rbind(c(i-1,j-1), c(i,j-1), c(i,j), c(i-1,j))
polygon(trans3d(x[idx], y[idx], z[idx], pmat))
}
> image(z,add=T)
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/s...
* 球の三次元プロット2 scatterplot3d の利用 (r-help 記事...
> library(scatterplot3d) # アドオンパッケージ scatterpl...
> a=seq(-pi,pi, length=100)
> x=c(rep(1, 100) %*% t(cos(a)))
> y=c(cos(a) %*% t(sin(a)))
> z=c(sin(a) %*% t(sin(a)))
> scatterplot3d(x, y, z, type="l")
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/s...
* Voronoi ダイアグラム (アドオンパッケージ tripack) 2003....
> library(tripack) # アドオンパッケージ tripack 使用
> coords <- cbind(runif(100), runif(100)) # ランダムな点...
> plot(coords, pch=19, col="blue")
> plot(voronoi.mosaic(coords[,1], coords[,2], duplicate ...
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/t...
* 帯グラフ 2003.3.3 [#nf7cf1ca]
> data(HairEyeColor)
> a <- as.table( apply(HairEyeColor, c(1,2), sum) )
> b <- a / apply(a, 1, sum)
> barplot(t(b),horiz=TRUE, axes=F)
> d.seg.ys <- rep((0.2 + 1) * 1:(ncol(t(b)) - 1), each=n...
> d.seg.ye <- rep((0.2 + 1) * 2:ncol(t(b)) - 1, each=nro...
> d.seg.xs <- apply(t(b)[,1:(ncol(t(b)) - 1)], 2, cumsum)
> d.seg.xe <- apply(t(b)[,2:ncol(t(b))], 2, cumsum)
> segments(d.seg.xs, d.seg.ys, d.seg.xe, d.seg.ye)
> axis(1,seq(0,1,by=0.2),paste(seq(0,100,by=20),"%"))
#ref(グラフィックス参考実例集:自作グラフィックス投稿欄/o...
ページ名: