rの初歩: 6. グラフィックス

14
R言語超初心者 6. 鈴木禎子 株式会社Joe’s

Upload: teiko-suzuki

Post on 19-Jul-2015

230 views

Category:

Science


1 download

TRANSCRIPT

R言語超初心者

6. グラフィックス

鈴木禎子

株式会社Joe’sクラウドコンピューティング

この章の内容

1. 散布図

2. 図の重ね合わせ

3. ヒストグラム

4. 箱ひげ図

5. Plotのパラメータ

6. 基本作図関数

7. 点のパラメータ

8. 直線のパラメータ

散布図

n<-100; x <- runif(n)*10; y <- x+rnorm(n)

xは0から10までに一様に分布し、yは正規分布の雑音を加えた乱数

plot(x, y)

Xもyも100個のデータで、その座標を表示

curve(x-1,xlim=c(0.01,5))

curveは、xの関数とxの範囲を指定

plot(log, xlim=c(0.01,5), xlab=“x”, ylab=“log x, x-1”,

add=TRUE)

plotは、xlimまたは初期値と最終値の対で範囲を、関数名(xをかかない)または、仮引数とそれを用いた関数の対で指定

plot(sin, 0, 2*pi,col="red“, ann=FALSE); par(new=TRUE)

plot(x,cos(x), xlim=c(0,2*pi), col="blue")

図の重ね合わせ

• xlab, ylabはx軸、y軸のタイトル、maは図のタイトル• Ann=FALSEで、デフォルトのxlab, ylabinの表示を抑制できる• Add=TRUEまたは、par(new=TRUE)でそれまでの図の上に表示することを指定

重ね合わせる図のうちの一方で、Ann=FALSEを指定しないと、

x-lab, y-labの表示が重なるplot(dnorm, -5,5, main="正規分布 (平均0, 分散1)", ylab="確率密度 f(x)")

dnormで正規分布の密度関数をあらわす

ヒストグラムx <- rnorm(100, mean=-1, sd=0.5)+rnorm(100, mean=1, sd=2)

breaks.1=10

hist(x, xlim=c(-3,8),breaks = breaks.1,ylab="確率密度")

hist(x, freq=TRUE, breaks=breaks.1,ylab="頻度")

• breaksで階級の個数を指定• freq=TRUEで頻度/階級幅ではなく、頻度が縦軸になる• Xlimで表示範囲を指定

関数 hist

breaks.2<-c(-5, -3,-2,-1,0,2,4,6,8,10)

hist(x, breaks = breaks.2, xlim=c(-3,6),main="分布とヒストグラム")

curve(dnorm(x,mean=-1, sd=0.5),xlim=c(-3,6),add=T,col="red")

curve(dnorm(x,mean=1, sd=2),xlim=c(-3,6),add=T,col="blue")

breaksで階級の境界(両端を含む)をベクトルで指定

箱ひげ図x <- rnorm(100, mean=-1) ; y <- rnorm(100, mean=0); z <- rnorm(100, mean=1)

boxplot(x,y,z, names=c("平均-1","平均0","平均1"))

boxplot(x,y,z, names=c("平均-1","平均0","平均1"), horizontal=TRUE)

horaizontal=TRUEで、横に表示

x<-rbinom(100,2,0.5)+1; y<-x*10+x*rnorm(100); x; y

boxplot(y ~ x)

xの値が1,2,3の値をとるものどうしで箱ひげ図

plotのパラメータ

par(mfrow=c(3,4))

plot(cos, 0,2*pi, type="p");

plot(cos, 0,2*pi, type="l");

plot(cos, 0,2*pi, type=“b”);

plot(cos, 0,2*pi, type="c");

plot(cos, 0,2*pi, type=“o”);

plot(cos, 0,2*pi, type="h");

plot(cos, 0,2*pi, type="s");

plot(cos, 0,2*pi, type="S");

plot(cos, 0,2*pi, type="n");

par(mfrow=c(1,1))

type 意味

type ="p" 点プロット(デフォルト)

type = "l" 線プロット(折れ線グラフ)

type ="b" 点と線のプロット

type = "c" “b” で点を描かないプロット

type ="o" 点プロットと線プロットの重ね書き

type ="h" 各点からx軸までの垂線プロット

type = "s" 左側の値にもとづいて階段状に結ぶ.

type = "S" 右側の値にもとづいて階段状に結ぶ.

type ="n" 軸だけ描いてプロットしない

基本作図関数

作図関数 機能

plot, curve, hist, boxplotなど 単独で図を作成できる

基本作図関数 すでに作成された図の上に点, 直線, 文字などを加える

機能 基本作図関数 意味

点 points(x, y) , points(c(x, y)) x座標,y座標を指定

直線 lines(x, y) , lines(c(x, y))

abline(a, b), abline(c(a, b))

abline(h = y)

abline(v = x)

abline(result)

x座標x,y座標yを指定切片aと傾きbを指定水平線のy座標yを指定垂直線のx座標xを指定関数lmで出力されるオブジェクトresultで回帰直線を指定

格子 grid(a, b) 横a本縦b本の格子

線分 segments(x0, y0, x1, y1) 始点の座標(x0,y0) と終点の座標(x1,y1)で線分を指定

矢印 arrows(x0, y0, x1, y1) 始点の座標 (x0,y0) と,終点の座標 (x1 ,y1) で指定

矩形 rect(x0, y0, x1, y1) 始点の座標 (x0,y0) と終点の座標 (x1 ,y1)で指定

文字 text(x, y, labels)

mtext(text, side = 3, line = 0, at =

NA)

座標位置(x,y)とテキストlabelで指定書き込む余白位置を表す1:下, 2:左, 3:上, 4:右のside、図形領域から何行離すかのlineを指定することができる

題名 title(main, sub) メインタイトルmain、サブタイトルsubで指定

軸 axis(side=4, labels=FALSE)

axis(side=1, pos=0)

labels=FALSEで、目盛のラベルが描かれない軸を描く位置をposで指定

多角形 polygon(x,y) x,y座標のベクトルx,yで指定

凡例 legend(x,y,legend) 座標 (x,y) に凡例legendを追加

点のパラメータ

plot(0:6, 0:6, type = "n")

for(i in 1:5) for(j in 1:5){

points(i,j,pch=(i-1)*5+j, col=(i-1)*5+j)}

points(x,y)で、(x,y)にプロット

pchで、プロットする点の形を指定

直線のパラメータplot(0:6, 0:6, type = "n")

for(i in 1:6) abline(a=i/3-2,b=1, lwd=i)

for(i in 1:6) abline(a=i/3,b=1, lty=i)

for(i in 1:20) abline(a=i/5+2,b=-1,col=i)

abline(a,b)で直線y=a+bx

lwdで線の太さ

lty=0 ,ty="blank" 線分の形式 (line type) を無し(透明の線)に

lty=1 ,lty="solid" 線分の形式 (line type) を実線に

lty=2,lty="dashed" 線分の形式 (line type) をダッシュに

lty=3 ,lty="dotted" 線分の形式 (line type) をドットに

lty=4,lty="dotdash" 線分の形式 (line type) をドットとダッシュに

lty=5,lty="longdash" 線分の形式 (line type) を長いダッシュに

ty=6,lty="twodash" 線分の形式 (line type) を二つのダッシュに