SlideShare a Scribd company logo
1 of 21
Download to read offline
3次元のデータをグラフにする
 Rで富士山を描いてみた
 \描けませんでした/




              2011-09-24
              Tokyo.R#17
              http://atnd.org/events/19835



              TSUTAYA Takumi
              (@tsutatsuta)
自己紹介

蔦谷 匠
TSUTAYA Takumi

・自然人類学の研究など
・大学院生のような




                        http://tsutatsuta.web.fc2.com/
発表の内容

● 何を図示するときに使うか

● 3次元のデータをグラフにする
・   今回使用するデータセット
・   contour
・   image
・   persp
・   scatterplot3d

● まとめ
何を図示するときに使うか

          ● 2つの変数をもつ関数

          ● 2つ以上の変数をもつ関数

          ● 座標と標高

                                                   …などなど


                    厳密な比較には向かないが
                     イメージをつかみやすい

たしかに三次元図は見栄えが良く、論文の飾りに好適だが、しばしばそれだけに留まるので注意がいるか。人間の視覚は二次元対象で最も鋭敏のようである。
                                               - グラフィックス参考実例集:三次元散布図 (RjpWiki)
今回使用するデータセット
● volcano
・ Maugna Whau 山 (Auckland) の標高データ
・ 10m × 10m グリッド (Max: 195, Min: 94)
・ 87行 (南→北) 61列 (東→西)




                           Google Earth
# データの準備
# データのラベルを作成
south.north <- 1:nrow(volcano) * 10 # rowの数は87
east.west <- 1:ncol(volcano) * 10 # columnの数は61

# 頂上の位置を変数に入れておく
mt.top <- which(volcano == max(volcano), arr.ind = TRUE) * 10

# 標高150mライン
level150 <- which(volcano == 150, arr.ind = TRUE) * 10

# scatterplot3dパッケージの読み込み
library(scatterplot3d)
# http://cran.r-project.org/web/packages/scatterplot3d/index.html

# scatterplot3d用ラベルの準備
south.north.3d <- rep(south.north, length(east.west))
west.east.3d <- vector(length = 87 * 61)
for(i in 1:61){
  west.east.3d[((i - 1) * 87 + 1):(i * 87)] <- east.west[i]
}
contour
 image
contour
● 等高線を描く
・ 線の数や間隔を調整できる
・ 線に数字を示すこともできる




                  > ?contour より
image
● 値に応じた色を格子上に示す
・ 色調や濃さを調整できる
・ contour と相性が良い




                   > ?image より
#1a   #1b




#1c   #1d
# 1a                                               # 1b
image(south.north, east.west, volcano,             image(south.north, east.west, volcano,
 col = terrain.colors(100),                          col = rainbow(100),
 xlab = "South-North", ylab = "East-West")           xlab = "South-North", ylab = "East-West")
contour(south.north, east.west, volcano,           contour(south.north, east.west, volcano,
 levels = c(175, 145), add = TRUE)                   levels = 160, lty = "dotted", add = TRUE)
points(mt.top[1], mt.top[2], pch = 20,             lines(c(0, 1000), c(150, 500))
 col = "blue") # 頂上を図示                               # (0, 150)と(1000, 150)を通る直線を引く




# 1c                                               # 1d
image(south.north, east.west, volcano,             image(south.north, east.west, volcano,
 col = gray((10:0)/10),                             col = gray((0:100)/100),
 xlab = "South-North", ylab = "East-West")          xlab = "South-North", ylab = "East-West")
contour(south.north, east.west, volcano,           contour(south.north, east.west, volcano,
 levels = 175, col = "red", add = TRUE)             col = rainbow(10), add = TRUE)
points(level150[ , 1], level150[ , 2], pch = 20,   text(mt.top[1], mt.top[2], "TOP", col = "blue")
 col = "blue") # 標高150mの点を図示                        # 頂上に"TOP"をプロット
persp
persp
● 投影図を描く
・ 立体的な図
・ 陰をつけたりもできる




                   > ?persp より
#2a   #2b




#2c   #2d
#2a                                                   #2b
mt.mw <- persp(south.north, east.west,                mt.mw <- persp(south.north, east.west,
 volcano, theta = 25, phi = 30, scale = FALSE,          volcano, theta = -25, phi = 50, scale = FALSE,
 col = "green", border = NA, ltheta = 120,              col = "green", border = NA, ltheta = 120,
 shade = 0.7, ticktype = "detailed",                    shade = 0.5, ticktype = "detailed",
 cex.axis = 0.8, xlab = "South-North",                  cex.axis = 0.8, xlab = "South-North",
 ylab = "East-West", zlab = "Altitude")                 ylab = "East-West", zlab = "Altitude")
points(trans3d(mt.top[1], mt.top[2], max(volcano),    x <- 6
pmat = mt.mw), col = "red", pch = 16)                 lines(trans3d(c(mt.top[1], level150[x, 1]),
 # 頂上を図示                                                c(mt.top[2], level150[x, 2]),
                                                        c(max(volcano), 150), pmat = mt.mw), col = "blue")
                                                       # 頂上と,標高150mにある一点を結ぶ




#2c                                                   #2d
mt.mw <- persp(south.north, east.west,                mt.mw <- persp(south.north, east.west,
 volcano, theta = 25, phi = 30, scale = FALSE,         volcano, theta = 25, phi = 30, scale = FALSE,
 col = NA, border = "black", ltheta = 120,             col = rainbow(7), border = NA, ltheta = -120,
 shade = 0.3, ticktype = "detailed",                   shade = 0.7, ticktype = "detailed",
 cex.axis = 0.8, xlab = "South-North",                 cex.axis = 0.8, xlab = "South-North",
 ylab = "East-West", zlab = "Altitude")                ylab = "East-West", zlab = "Altitude")
x <- 6                                                x <- 6
points(trans3d(level150[ , 1], level150[ , 2], 150,   text(trans3d(mt.top[1], mt.top[2], max(volcano),
 pmat = mt.mw), col = "red", pch = 16)                 pmat = mt.mw), "TOP", pch = 16)
 # 標高150mの点を図示                                         # 頂上に"TOP"をプロット
scatterplot3d
scatterplot3d
● 3次元空間へのプロット
・ scatterplot3dパッケージが必要
・ http://cran.r-project.org/web/packages/scatterplot3d/index.html




                                                                    > ?scatterplot3dより
#3a   #3b




#3c   #3d
# 3a                                                # 3b
mt.mw.3d <- scatterplot3d(west.east.3d,             level145to150.3d <- which(volcano < 150 &
 south.north.3d, volcano, scale.y = 1,                volcano >= 145) # 標高145m以上150m未満
 highlight.3d = TRUE,                               level150to155.3d <- which(volcano < 155 &
 zlim = c(80, 200), xlab = "West-East",               volcano >= 150) # 標高150m以上145m未満
 ylab = "South-North", zlab = "Altitude")           mt.mw.3d<- scatterplot3d(
mt.mw.3d$plane3d(150, x.coef = 0, y.coef = 0,         west.east.3d[level145to150.3d],
 lty.box = "dashed")                                  south.north.3d[level145to150.3d],
 # 標高150mラインに平面の追加.                                   volcano[level145to150.3d], color = "red",
mt.mw.3d$points3d(mt.top[2], mt.top[1],               scale.y = 1, xlim = c(0, 700), ylim = c(0, 1000),
 max(volcano), col = "blue", pch = 19)                zlim = c(80, 200), xlab = "West-East",
 # 頂上の追加.                                             ylab = "South-North", zlab = "Altitude")
                                                    mt.mw.3d$plane3d(150, x.coef = 0, y.coef = 0,
                                                      lty.box = "dashed") # 標高150mラインに平面
                                                    mt.mw.3d$points3d(west.east.3d[level150to155.3d],
                                                      south.north.3d[level150to155.3d],
                                                      volcano[level150to155.3d], col = "red")
                                                      # 標高150m以上155m未満
# 3c
west275to300.3d <- which(west.east.3d < 300 &
  west.east.3d >= 275) # 西から275以上300m未満
west500to525.3d <- which(west.east.3d < 525 &       # 3d
  west.east.3d >= 500) # 西から500以上525m未満             south275to325.3d <- which(south.north.3d < 325 &
label.3d <- c(west275to300.3d, west500to525.3d)      south.north.3d >= 275) # 南から275以上325m未満
mt.mw.3d <- scatterplot3d(west.east.3d[label.3d],   mt.mw.3d <-scatterplot3d(
  south.north.3d[label.3d], volcano[label.3d],       west.east.3d[south275to325.3d],
  scale.y = 1.5, highlight.3d = TRUE,                south.north.3d[south275to325.3d],
  xlim = c(0, 700), ylim = c(0, 1000),               volcano[south275to325.3d], scale.y = 0.7,
  zlim = c(80, 200), xlab = "West-East",             color = "blue", xlim = c(0, 700), ylim = c(0, 1000),
  ylab = "South-North", zlab = "Altitude")           zlim = c(80, 200), xlab = "West-East",
                                                     ylab = "South-North", zlab = "Altitude")
まとめ

           図示の形式      定量性   イメージ

contour
image      連続的な面       ◯     △

persp      連続的な面       △     ◯

scatterplot3d 離散的な点    △     ◯


使わないで済むなら、それに越したことはないかもしれません…
参考

● Rヘルプドキュメント

● 高水準作図関数 (R-Tips)
 http://cse.naro.affrc.go.jp/takezawa/r-tips/r/50.html


● 三次元散布図 (RjpWiki)
 http://www.okada.jp.org/RWiki/




他にも関数やパッケージをご存じでしたら、ぜひ教えてください!

More Related Content

What's hot

【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデルMasashi Komori
 
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)yutannihilation
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデルYohei Sato
 
バリデーション研究の入門
バリデーション研究の入門バリデーション研究の入門
バリデーション研究の入門Yasuyuki Okumura
 
PRML輪読#11
PRML輪読#11PRML輪読#11
PRML輪読#11matsuolab
 
研究室内PRML勉強会 11章2-4節
研究室内PRML勉強会 11章2-4節研究室内PRML勉強会 11章2-4節
研究室内PRML勉強会 11章2-4節Koji Matsuda
 
PRML輪読#3
PRML輪読#3PRML輪読#3
PRML輪読#3matsuolab
 
PRML輪読#9
PRML輪読#9PRML輪読#9
PRML輪読#9matsuolab
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)Shota Yasui
 
PRML輪読#14
PRML輪読#14PRML輪読#14
PRML輪読#14matsuolab
 
[PRML] パターン認識と機械学習(第2章:確率分布)
[PRML] パターン認識と機械学習(第2章:確率分布)[PRML] パターン認識と機械学習(第2章:確率分布)
[PRML] パターン認識と機械学習(第2章:確率分布)Ryosuke Sasaki
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~. .
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Hiroshi Shimizu
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38horihorio
 
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)Hideo Hirose
 
幾何を使った統計のはなし
幾何を使った統計のはなし幾何を使った統計のはなし
幾何を使った統計のはなしToru Imai
 
ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法Masaru Tokuoka
 

What's hot (20)

【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
 
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
 
バリデーション研究の入門
バリデーション研究の入門バリデーション研究の入門
バリデーション研究の入門
 
Chapter2.3.6
Chapter2.3.6Chapter2.3.6
Chapter2.3.6
 
PRML輪読#11
PRML輪読#11PRML輪読#11
PRML輪読#11
 
研究室内PRML勉強会 11章2-4節
研究室内PRML勉強会 11章2-4節研究室内PRML勉強会 11章2-4節
研究室内PRML勉強会 11章2-4節
 
PRML輪読#3
PRML輪読#3PRML輪読#3
PRML輪読#3
 
PRML輪読#9
PRML輪読#9PRML輪読#9
PRML輪読#9
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)
 
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM) 一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
 
PRML輪読#14
PRML輪読#14PRML輪読#14
PRML輪読#14
 
Prml11 4
Prml11 4Prml11 4
Prml11 4
 
[PRML] パターン認識と機械学習(第2章:確率分布)
[PRML] パターン認識と機械学習(第2章:確率分布)[PRML] パターン認識と機械学習(第2章:確率分布)
[PRML] パターン認識と機械学習(第2章:確率分布)
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
 
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)
 
幾何を使った統計のはなし
幾何を使った統計のはなし幾何を使った統計のはなし
幾何を使った統計のはなし
 
ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法
 

Similar to 3次元のデータをグラフにする(Tokyo.R#17)

Advanced Data Visualization Examples with R-Part II
Advanced Data Visualization Examples with R-Part IIAdvanced Data Visualization Examples with R-Part II
Advanced Data Visualization Examples with R-Part IIDr. Volkan OBAN
 
An example of R code for Data visualization
An example of R code for Data visualizationAn example of R code for Data visualization
An example of R code for Data visualizationLiang (Leon) Zhou
 
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」Ken'ichi Matsui
 
There's more than one way to empty it
There's more than one way to empty itThere's more than one way to empty it
There's more than one way to empty itAndrew Shitov
 
How to clean an array
How to clean an arrayHow to clean an array
How to clean an arrayAndrew Shitov
 
you need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdfyou need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdfadnankhan605720
 
ggtimeseries-->ggplot2 extensions
ggtimeseries-->ggplot2 extensions ggtimeseries-->ggplot2 extensions
ggtimeseries-->ggplot2 extensions Dr. Volkan OBAN
 
import turtleimport timeimport randomdef draw_rectangle(length.pdf
import turtleimport timeimport randomdef draw_rectangle(length.pdfimport turtleimport timeimport randomdef draw_rectangle(length.pdf
import turtleimport timeimport randomdef draw_rectangle(length.pdfrakeshankur
 
Intro matlab-nn
Intro matlab-nnIntro matlab-nn
Intro matlab-nnsoldier78
 
Computer Graphics in Java and Scala - Part 1b
Computer Graphics in Java and Scala - Part 1bComputer Graphics in Java and Scala - Part 1b
Computer Graphics in Java and Scala - Part 1bPhilip Schwarz
 
Perlで任意精度計算
Perlで任意精度計算Perlで任意精度計算
Perlで任意精度計算lestrrat
 
Advanced Data Visualization in R- Somes Examples.
Advanced Data Visualization in R- Somes Examples.Advanced Data Visualization in R- Somes Examples.
Advanced Data Visualization in R- Somes Examples.Dr. Volkan OBAN
 
Fourier series example
Fourier series exampleFourier series example
Fourier series exampleAbi finni
 
Plot3D Package and Example in R.-Data visualizat,on
Plot3D Package and Example in R.-Data visualizat,onPlot3D Package and Example in R.-Data visualizat,on
Plot3D Package and Example in R.-Data visualizat,onDr. Volkan OBAN
 
Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.
Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.
Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.Dr. Volkan OBAN
 

Similar to 3次元のデータをグラフにする(Tokyo.R#17) (20)

Advanced Data Visualization Examples with R-Part II
Advanced Data Visualization Examples with R-Part IIAdvanced Data Visualization Examples with R-Part II
Advanced Data Visualization Examples with R-Part II
 
An example of R code for Data visualization
An example of R code for Data visualizationAn example of R code for Data visualization
An example of R code for Data visualization
 
CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...
CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...
CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...
 
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
There's more than one way to empty it
There's more than one way to empty itThere's more than one way to empty it
There's more than one way to empty it
 
How to clean an array
How to clean an arrayHow to clean an array
How to clean an array
 
matlab.docx
matlab.docxmatlab.docx
matlab.docx
 
Programming Assignment Help
Programming Assignment HelpProgramming Assignment Help
Programming Assignment Help
 
you need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdfyou need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdf
 
ggtimeseries-->ggplot2 extensions
ggtimeseries-->ggplot2 extensions ggtimeseries-->ggplot2 extensions
ggtimeseries-->ggplot2 extensions
 
import turtleimport timeimport randomdef draw_rectangle(length.pdf
import turtleimport timeimport randomdef draw_rectangle(length.pdfimport turtleimport timeimport randomdef draw_rectangle(length.pdf
import turtleimport timeimport randomdef draw_rectangle(length.pdf
 
Intro matlab-nn
Intro matlab-nnIntro matlab-nn
Intro matlab-nn
 
Computer Graphics in Java and Scala - Part 1b
Computer Graphics in Java and Scala - Part 1bComputer Graphics in Java and Scala - Part 1b
Computer Graphics in Java and Scala - Part 1b
 
CLUSTERGRAM
CLUSTERGRAMCLUSTERGRAM
CLUSTERGRAM
 
Perlで任意精度計算
Perlで任意精度計算Perlで任意精度計算
Perlで任意精度計算
 
Advanced Data Visualization in R- Somes Examples.
Advanced Data Visualization in R- Somes Examples.Advanced Data Visualization in R- Somes Examples.
Advanced Data Visualization in R- Somes Examples.
 
Fourier series example
Fourier series exampleFourier series example
Fourier series example
 
Plot3D Package and Example in R.-Data visualizat,on
Plot3D Package and Example in R.-Data visualizat,onPlot3D Package and Example in R.-Data visualizat,on
Plot3D Package and Example in R.-Data visualizat,on
 
Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.
Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.
Plot3D package in R-package-for-3d-and-4d-graph-Data visualization.
 

Recently uploaded

Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...Pooja Nehwal
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 

Recently uploaded (20)

Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 

3次元のデータをグラフにする(Tokyo.R#17)

  • 1. 3次元のデータをグラフにする Rで富士山を描いてみた \描けませんでした/ 2011-09-24 Tokyo.R#17 http://atnd.org/events/19835 TSUTAYA Takumi (@tsutatsuta)
  • 3. 発表の内容 ● 何を図示するときに使うか ● 3次元のデータをグラフにする ・ 今回使用するデータセット ・ contour ・ image ・ persp ・ scatterplot3d ● まとめ
  • 4. 何を図示するときに使うか ● 2つの変数をもつ関数 ● 2つ以上の変数をもつ関数 ● 座標と標高 …などなど 厳密な比較には向かないが イメージをつかみやすい たしかに三次元図は見栄えが良く、論文の飾りに好適だが、しばしばそれだけに留まるので注意がいるか。人間の視覚は二次元対象で最も鋭敏のようである。 - グラフィックス参考実例集:三次元散布図 (RjpWiki)
  • 5. 今回使用するデータセット ● volcano ・ Maugna Whau 山 (Auckland) の標高データ ・ 10m × 10m グリッド (Max: 195, Min: 94) ・ 87行 (南→北) 61列 (東→西) Google Earth
  • 6. # データの準備 # データのラベルを作成 south.north <- 1:nrow(volcano) * 10 # rowの数は87 east.west <- 1:ncol(volcano) * 10 # columnの数は61 # 頂上の位置を変数に入れておく mt.top <- which(volcano == max(volcano), arr.ind = TRUE) * 10 # 標高150mライン level150 <- which(volcano == 150, arr.ind = TRUE) * 10 # scatterplot3dパッケージの読み込み library(scatterplot3d) # http://cran.r-project.org/web/packages/scatterplot3d/index.html # scatterplot3d用ラベルの準備 south.north.3d <- rep(south.north, length(east.west)) west.east.3d <- vector(length = 87 * 61) for(i in 1:61){ west.east.3d[((i - 1) * 87 + 1):(i * 87)] <- east.west[i] }
  • 8. contour ● 等高線を描く ・ 線の数や間隔を調整できる ・ 線に数字を示すこともできる > ?contour より
  • 10. #1a #1b #1c #1d
  • 11. # 1a # 1b image(south.north, east.west, volcano, image(south.north, east.west, volcano, col = terrain.colors(100), col = rainbow(100), xlab = "South-North", ylab = "East-West") xlab = "South-North", ylab = "East-West") contour(south.north, east.west, volcano, contour(south.north, east.west, volcano, levels = c(175, 145), add = TRUE) levels = 160, lty = "dotted", add = TRUE) points(mt.top[1], mt.top[2], pch = 20, lines(c(0, 1000), c(150, 500)) col = "blue") # 頂上を図示 # (0, 150)と(1000, 150)を通る直線を引く # 1c # 1d image(south.north, east.west, volcano, image(south.north, east.west, volcano, col = gray((10:0)/10), col = gray((0:100)/100), xlab = "South-North", ylab = "East-West") xlab = "South-North", ylab = "East-West") contour(south.north, east.west, volcano, contour(south.north, east.west, volcano, levels = 175, col = "red", add = TRUE) col = rainbow(10), add = TRUE) points(level150[ , 1], level150[ , 2], pch = 20, text(mt.top[1], mt.top[2], "TOP", col = "blue") col = "blue") # 標高150mの点を図示 # 頂上に"TOP"をプロット
  • 12. persp
  • 13. persp ● 投影図を描く ・ 立体的な図 ・ 陰をつけたりもできる > ?persp より
  • 14. #2a #2b #2c #2d
  • 15. #2a #2b mt.mw <- persp(south.north, east.west, mt.mw <- persp(south.north, east.west, volcano, theta = 25, phi = 30, scale = FALSE, volcano, theta = -25, phi = 50, scale = FALSE, col = "green", border = NA, ltheta = 120, col = "green", border = NA, ltheta = 120, shade = 0.7, ticktype = "detailed", shade = 0.5, ticktype = "detailed", cex.axis = 0.8, xlab = "South-North", cex.axis = 0.8, xlab = "South-North", ylab = "East-West", zlab = "Altitude") ylab = "East-West", zlab = "Altitude") points(trans3d(mt.top[1], mt.top[2], max(volcano), x <- 6 pmat = mt.mw), col = "red", pch = 16) lines(trans3d(c(mt.top[1], level150[x, 1]), # 頂上を図示 c(mt.top[2], level150[x, 2]), c(max(volcano), 150), pmat = mt.mw), col = "blue") # 頂上と,標高150mにある一点を結ぶ #2c #2d mt.mw <- persp(south.north, east.west, mt.mw <- persp(south.north, east.west, volcano, theta = 25, phi = 30, scale = FALSE, volcano, theta = 25, phi = 30, scale = FALSE, col = NA, border = "black", ltheta = 120, col = rainbow(7), border = NA, ltheta = -120, shade = 0.3, ticktype = "detailed", shade = 0.7, ticktype = "detailed", cex.axis = 0.8, xlab = "South-North", cex.axis = 0.8, xlab = "South-North", ylab = "East-West", zlab = "Altitude") ylab = "East-West", zlab = "Altitude") x <- 6 x <- 6 points(trans3d(level150[ , 1], level150[ , 2], 150, text(trans3d(mt.top[1], mt.top[2], max(volcano), pmat = mt.mw), col = "red", pch = 16) pmat = mt.mw), "TOP", pch = 16) # 標高150mの点を図示 # 頂上に"TOP"をプロット
  • 17. scatterplot3d ● 3次元空間へのプロット ・ scatterplot3dパッケージが必要 ・ http://cran.r-project.org/web/packages/scatterplot3d/index.html > ?scatterplot3dより
  • 18. #3a #3b #3c #3d
  • 19. # 3a # 3b mt.mw.3d <- scatterplot3d(west.east.3d, level145to150.3d <- which(volcano < 150 & south.north.3d, volcano, scale.y = 1, volcano >= 145) # 標高145m以上150m未満 highlight.3d = TRUE, level150to155.3d <- which(volcano < 155 & zlim = c(80, 200), xlab = "West-East", volcano >= 150) # 標高150m以上145m未満 ylab = "South-North", zlab = "Altitude") mt.mw.3d<- scatterplot3d( mt.mw.3d$plane3d(150, x.coef = 0, y.coef = 0, west.east.3d[level145to150.3d], lty.box = "dashed") south.north.3d[level145to150.3d], # 標高150mラインに平面の追加. volcano[level145to150.3d], color = "red", mt.mw.3d$points3d(mt.top[2], mt.top[1], scale.y = 1, xlim = c(0, 700), ylim = c(0, 1000), max(volcano), col = "blue", pch = 19) zlim = c(80, 200), xlab = "West-East", # 頂上の追加. ylab = "South-North", zlab = "Altitude") mt.mw.3d$plane3d(150, x.coef = 0, y.coef = 0, lty.box = "dashed") # 標高150mラインに平面 mt.mw.3d$points3d(west.east.3d[level150to155.3d], south.north.3d[level150to155.3d], volcano[level150to155.3d], col = "red") # 標高150m以上155m未満 # 3c west275to300.3d <- which(west.east.3d < 300 & west.east.3d >= 275) # 西から275以上300m未満 west500to525.3d <- which(west.east.3d < 525 & # 3d west.east.3d >= 500) # 西から500以上525m未満 south275to325.3d <- which(south.north.3d < 325 & label.3d <- c(west275to300.3d, west500to525.3d) south.north.3d >= 275) # 南から275以上325m未満 mt.mw.3d <- scatterplot3d(west.east.3d[label.3d], mt.mw.3d <-scatterplot3d( south.north.3d[label.3d], volcano[label.3d], west.east.3d[south275to325.3d], scale.y = 1.5, highlight.3d = TRUE, south.north.3d[south275to325.3d], xlim = c(0, 700), ylim = c(0, 1000), volcano[south275to325.3d], scale.y = 0.7, zlim = c(80, 200), xlab = "West-East", color = "blue", xlim = c(0, 700), ylim = c(0, 1000), ylab = "South-North", zlab = "Altitude") zlim = c(80, 200), xlab = "West-East", ylab = "South-North", zlab = "Altitude")
  • 20. まとめ 図示の形式 定量性 イメージ contour image 連続的な面 ◯ △ persp 連続的な面 △ ◯ scatterplot3d 離散的な点 △ ◯ 使わないで済むなら、それに越したことはないかもしれません…
  • 21. 参考 ● Rヘルプドキュメント ● 高水準作図関数 (R-Tips) http://cse.naro.affrc.go.jp/takezawa/r-tips/r/50.html ● 三次元散布図 (RjpWiki) http://www.okada.jp.org/RWiki/ 他にも関数やパッケージをご存じでしたら、ぜひ教えてください!