- 基本、少し改変
- 高水準関数+低水準関数で作る
- 低水準関数のみで作る
- この章の構成
- 3.1 低水準関数で適切に描くための基礎
- 3.2 作図を構成する概念とそれを用いた体裁の指定
- 3.3 複数の図の配置
- 3.4 描き加える
- 3.1 低水準関数で適切に描くための基礎
- グラフ領域
- 外側から、Outer領域、figure領域、plot領域からなる
- 座標系
- 作図状態情報
- デバイスごとに作図する。その作図の状態・条件はデバイスごとに指定・保存している
- par()によって状態を表示でき、par()を使って、状態・条件を変更することができる
x<-runif(1000)
plot(x)
par(c("col","pch"))
> x<-runif(1000)
> plot(x)
> par(c("col","pch"))
$col
[1] "black"
$pch
[1] 1
par(col="red")
plot(x)
par(c("col","pch"))
> par(col="red")
> plot(x)
> par(c("col","pch"))
$col
[1] "red"
$pch
[1] 1
par(pch=15)
plot(x)
par(c("col","pch"))
> par(pch=15)
> plot(x)
> par(c("col","pch"))
$col
[1] "red"
$pch
[1] 15
-
- 3.2 作図を構成する概念とそれを用いた体裁の指定
- 色の指定、3部分
- col : plot 領域に描かれるもの(シンボル・線・テキストなど)の色の指定
- fg : グラフの軸・境界線の色の指定
- bg : 背景色の指定
- 色の指定法
- colors()による名称指定
- rgb()による3原色指定
- hsv()による色相・彩度・明度指定
- 透明・半透明
- 名称指定ではアルファ値指定(0-1)
- rgb()では、16進x3でRGB、もう一つの16進法1桁分で透過性
- NA指定は完全透明
- 色の順序つきセット
example(rainbow)
-
- 塗りつぶし
- density()、angle()関数が四角形・多角形に実施可能
- 線
- 線のタイプ(実線、破線、点線など)
- 線の太さ
- 線の末端の継ぎ目の取り扱い
- テキスト
- サイズ:ps(絶対サイズ),cex(相対サイズ)
- フォント:font, family
- 左右位置:adj
- 回転:str
- 作図領域の指定に関すること
- グラフの移動に関すること
- 3.3 複数の図の配置
- par(mfcol=c(n,m))
- layout()
- split.screen()
- 3.4 描き加える
- どこに加えるか
- plot領域に加える
- Figure 領域内でplot領域外(マージン)に加える
- 凡例
- 軸を操作する
- 数式
plot(x)
mtext(expression(sum(x,i==1,100)==sqrt(y)))
demo(plotmath)
- 重ね描きとかしたくなったら
- 領域は座標していできるから、それに応じて、適宜座標変換しつつ描く、とか…
- 基本的には、縦軸・横軸とも[0,1]と考え、プロットしたい値の方をこれに合わせて標準化する
plot.new()
plot.window(c(0,1),c(0,1))
box()
t<-seq(from=1968,to=2012,by=1)
x<-runif(length(t))
x<-sort(x)
x<-sort(x)+rnorm(length(x),sd=0.1)
y<-rnorm(length(t),mean=100,sd=30)
t.st<-(t-min(t))/(max(t)-min(t))
minX<-floor(min(round(x,1)))
maxX<-ceiling(max(round(x,1))+1)
minY<-floor(min(round(y,1)))
maxY<-ceiling(max(round(y,1)))
x.st<-(x-minX)/(maxX-minX)
y.st<-(y-minY)/(maxY-minY)
points(t.st,x.st,col=3)
points(t.st,y.st,col=2)
lines(t.st,x.st,col=4)
lines(t.st,y.st,col=5)
axis(1, seq(from=0,to=1,length=length(t)), t)
axis(2, seq(from=0,to=1,length=11), seq(from=minX,to=maxX,length=11))
axis(4, seq(from=0,to=1,length=11), seq(from=minY,to=maxY,length=11))