COLOR(red){SIZE(20){グラフィックス参考実例集:共変量プロット}} png デバイス使用。coplot は第3・第4の共変量の値の範囲を指定した散布図で、 3,4 次元散布図の2次元断面図(薄片)と考えると理解しやすく、CTスキャンによる、連続断面図風の効果がえられる。上・右部に共変量の指定範囲が棒グラフ状に示される。 ## Tonga 海溝の地震データ coplot1 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 png("coplot1.png") # png デバイスを開 data(quakes) # depth データの範囲毎に lat, long データの散布図を描く coplot(lat ~ long | depth, data = quakes) dev.off() # デバイスを閉じる } #ref(coplot1.png, left) ## Tonga 海溝の地震データ coplot2 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 png("coplot2.png") # png デバイスを開く data(quakes) # depth データの範囲を自分で指定 given.depth <- co.intervals(quakes$depth, number=4, overlap=.1) coplot(lat ~ long | depth, data = quakes, given.v=given.depth, rows=1) dev.off() # デバイスを閉じる } #ref(coplot2.png, left) ## 2変数で条件付 coplot3 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 png("coplot3.png") # png デバイスを開 data(quakes) # depth, mag データの範囲毎に lat, long データの散布図を描く ll.dm <- lat ~ long | depth * mag coplot(ll.dm, data = quakes) dev.off() # デバイスを閉じる } #ref(coplot3.png, left) ## 2変数で条件付け coplot4 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 png("coplot4.png") # png デバイスを開 data(quakes) ll.dm <- lat ~ long | depth * mag coplot(ll.dm, data = quakes, number=c(4,7), show.given=c(TRUE,FALSE)) dev.off() # デバイスを閉じる } #ref(coplot4.png, left) ## 2変数で条件付け coplot5 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 png("coplot5.png") # png デバイスを開 data(quakes) ll.dm <- lat ~ long | depth * mag coplot(ll.dm, data = quakes, number=c(3,7), overlap=c(-.5,.1)) # negative overlap DROPS values dev.off() # デバイスを閉じる } #ref(coplot5.png, left) ## 2変数で条件付け coplot6 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 data(quakes) ll.dm <- lat ~ long | depth * mag png("coplot6.png") # png デバイスを開く coplot(ll.dm, data = quakes, number=c(3,7), overlap=c(-.5,.1)) # negative overlap DROPS values dev.off() # デバイスを閉じる } #ref(coplot6.png, left) ## 因子の水準毎に散布図を描く coplot7 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 data(warpbreaks) ## 二つの因子を与える png("coplot7.png") # pngデバイスを開く coplot(breaks ~ 1:54 | wool * tension, data = warpbreaks, show.given = 0:1) dev.off() # デバイスを閉じる } #ref(coplot7.png, left) # 二つの因子 wool, tension の各水準毎に散布図を描く coplot8 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 data(warpbreaks) #attach(warpbreaks) png("coplot8.png") # pngデバイスを開く coplot(breaks ~ 1:54 | wool * tension, data = warpbreaks, col = "red", bg = "pink", pch = 21, bar.bg = c(fac = "light blue")) dev.off() # デバイスを閉じる } #ref(coplot8.png, left) ## 空の panel がある例 coplot9 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 data(state) attach(data.frame(state.x77)) # 以下で data 引数が不要になる png("coplot9.png") # pngデバイスを開く coplot(Life.Exp ~ Income | Illiteracy * state.region, number = 3, panel = function(x, y, ...) panel.smooth(x, y, span = .8, ...)) detach() # data.frame(state.x77) を削除 dev.off() # デバイスを閉じる } #ref(coplot9.png, left) ## 空の panel がある例 coplot10 <- function () { oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避 on.exit(par(oldpar)) # (関数がエラー中断しても)パラメータ復帰 data(state) attach(data.frame(state.x77)) # 以下で data 引数が不要になる png("coplot10.png", height=580) # pngデバイスを開く ## y ~ factor -- 実際は意味は無いが、強調のため coplot(Life.Exp ~ state.region | Income * state.division, panel = panel.smooth) detach() # data.frame(state.x77) を削除 dev.off() # デバイスを閉じる } #ref(coplot10.png,left)