Rplot

R-Tips
Tinn-R
東工大 R Tips 矢印を描く
飯島の雑記帳 plotいろいろ
plotの詳細いろいろ

グラフを描く

高級関数
> curve(sin, 0,2*pi)
時系列を表示(要するに連番データを書き出す)
> ts.plot( data.vector )
頻度プロット
> hist(x)
頻度プロット(線で結ぶ)
> plot( density(x) )
行列を画像として表示
> image(x, y, z, col=terrain.colors(100), xlab="hoge", ylab="hage")
色指定は次のようにする
> image( ... col=terrain.colors(100) ... ) 緑→黄→白
ほかにも、
rainbow(100) 虹色
heat.colors(100) 赤→黄
topo.colors(100) 青→緑→黄
gray(seq(0,1,length=100)) 黒→白
点の散布図を書き足す。
> points(p.x, p.y)
※ image で行列の転地がひっくり返るのを修正するコード
> image2 <- function(m, ...) image(t(m[nrow(m):1,]), col=gray(1:100/100), ...)
行列を画像として表示 その2
filled.contour(x, y, z=mat) image進化版。カラーバー付き。
点を書き足すには次のようにやるのが簡単 pointsの詳細については後述
> filled.contour(x, y, z=mat, plot.axes={axis(1); axis(2); points(p.x, p.y)})
色指定は次のようにやる。レベル指定は image と違って手動。
> filled.contour(... color=terrain.colors, level=c(10, 20, 30, 40) ...)
タイトルとかは次
> filled.contour(... plot.title=title(main="main", xlab="hage", ylab="hage")...)
行列を画像として表示 その3
 contour 等高線
(lattice) levelplot 同じようなやつ。
重ね描き
> plot(x, y, xlim=c(0,1), ylim=c(0,1))
> par(new=T); plot(x, y, xlim=c(0,1), ylim=c(0,1), ann=F)
データ点を描き足し
par(new=T)は不要なことに注意!
> plot(x.calc, y.calc, type="l")
> points(x.data, y.data, pch=20, cex=1, col=c("red", "blue"))
(座標を変えずに)重ね描き
> curve(cos, 0,2*pi)
(重ね描きをするために)白地を描画
> plot( -10:10, 0:1, type="n" ) #x軸の範囲が-10:10で,y軸の範囲が0:1になる。
軸の目盛りを調整する。
> plot( data, lab=c(x, y, hoge) )
hoge はなんでも良いらしい。
x で x軸の目盛りの数 ←!
y で y軸の目盛りの数 ←!
軸目盛りに好きな名前をつける。
> plot( 1:5, 0:1, type="n", xaxt="n" ) ←軸を書かない!両軸消すには axes=FALSE
> axis( 1, at=1:5, labels=c(1, "hoge", 100, "hage", 5) )
グリッドを描く
> plot( hoge, panel.first = grid( x, y ) )
x で x軸から生える毛の数
y で y軸から生える毛の数
3次元プロットの例
> x <- seq(-1,1,by=0.1)
> y <- seq(-1,1,by=0.1)
> f <- function(x,y) x^2+y^2
> z <- outer(x,y,f)          # zを各(x,y)の組み合わせに対して計算
> z[is.na(z)] <- 1           # NAがあれば,1で置き換える
> persp(x, y, z, theta=30, phi=30, ylabel="x'")
別の3次元プロット
> library(lattice)
> cloud(z ~ x * y)
色付きの散布図
> lev <- 20 # 階調
> suf <- findInterval( z, seq( min(z), max(z), length.out=lev ) )
> plot( x, y, col=rainbow(lev)[suf] )
コピペ用
plot.col <- function( x, y, z, lev=20 ){
  suf <- findInterval( z, seq( min(z), max(z), length.out=lev ) )
  plot( x, y, col=rainbow(lev)[suf], pch=19 )
}
最終更新:2014年11月05日 17:22
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。