@ito_yan
email: 1mail2itoh3あっとgmail.com
2010.10.31
Tokyo.R #10
@ito_yanが勉強会のために作成した資料です
所属する組織の意見/見解ではありません
当たり前という方は睡眠学習
そんな発表で大丈夫か?
大丈夫だ、問題ない
本資料はWeb上での掲載に当たり、一部修正
を加えております
twitterID :@ito_yan (アンダーバーに注意!)
お仕事
主にデータ解析で困っている人を助けること
顧客の業種は様々
業務でR使ってます
代わりにメジャーな言語が触れません
R歴約4年
本格的な利用は1年半
ggplot2(第6回)
>ggplot(mtcars,aes(x=wt,y=mpg
))+geom_point(aes(colour=cyl))
+stat_smooth(method="lm")+la
bs(x="xlabel",y="ylabel",colour=
"legend")+opts(title="Motor
Trend Car Road Tests")
使えばいいじゃない?それで綺麗に描けるのだから
余分なライブラリはほとんど利用しない
why?
・顧客の利用する環境がオフラインだったりする
→できるだけ最初から用意されているパッケージを利用したい
というわけでRのインストール時から存在するplot達の出番
基本的な描画関数だけ使って綺麗に見せよう
?plotで確認してみる
plot(x,y,…)という呼び出し方
実際には指定できるオプションは膨大であるが、主なオプ
ションとしてヘルプに記述されているのは以下の通り
オプションオプションオプションオプション 意味意味意味意味
type 点の書き方
main グラフの上に書くタイトル
sub グラフの下に書くサブタイトル
x(y)lab 軸の名前
asp x,y軸の範囲の比率
これらを用いて見栄え良く改良することができる
plot(rnorm(10)) plot(UKgas)
見た目は異なるが、エラーもなく描画できる
rnorm(10)
UKgas (英国の四半期ごとのガス利用量)
・
・
・ 全然同じ形式じゃないよ!
関数名だけ入力すると関数定義が見られる
UseMethodが入力されるデータ(オブジェクトのクラス)に応じて利用
するメソッドを探してくれる
第一引数は関数であるか
methodsでUseMethodの内容を覗いてみる
“総称的関数.オブジェクトのクラス”という名前付けの
ルールがあり、適したものが選ばれる
plot.integerはない→plot.defaultで描く
plot.tsで描く
先頭から順にマッチするものを探索
no、differentというクラスは存在しない
ので、plot.defaultが呼ばれる
クラスの上書きもできる
作図関数は大きく3種類に分けられる
高水準作図関数
描画範囲を設定+描画
ex. plot,barplot,hist
低水準作図関数
高水準作図関数で設定した情報をもとに書き込む
ex. abline , lines
対話的作図関数(利用頻度低)
マウスで座標位置を取得するlocator()
図表中の点の情報を得るidentify()
高水準+低水準 → 相性がいい
高水準+高水準 → 描画が面倒
plotを2回繰り返すと…
前のグラフが消えてしまう
右図はplot(rnorm(10))のみが反映
されている
グラフィックのパラメータ設定関数
関数の返り値は変更前のパラメータ
元に戻したい場合に利用しましょう
主主主主ななななオプションオプションオプションオプション 効果効果効果効果
cex 文字サイズの変更
mfrow=c(m,n) デバイス領域をm*nに切る
行方向から順にグラフを描く
oma=c(p1,p2,p3,p4) 図の外部マージンを指定する
下、左、上、右の4つの値を指定
mar=c(p1,p2,p3,p4) 図の内部マージンを指定する
las ラベルの向きを指定(1~4)
xpd プロット領域外への描画の指定
p1
p2
p3
p4
デバイス領域
作図領域
プロット領域
par(new=T)を利用する
高水準作図関数を繰り返し利用する時に便利
毎回描画範囲を固定する必要がある
xlim、ylimを設定して描画範囲を固定
y軸方向の描画範囲を設定
xlim,ylimには
c(描画範囲の最小値、描画範囲の最大値)と
いう長さ2のベクトルを指定する.rangeの返り
値と同じ形式である
オプションadd=Tの利用
curveなど一部の高水準作図関数は、低水準作図関数と同じ
ようにふるまえる
lmの返り値をplot
回帰診断の結果(4グラフ)
2*2に分割して、上の行から
順にグラフを埋める
回帰診断の内容
1. あてはめ値に対する残差
2. 残差の正規性の確認
3. あてはめ値に対する残差の絶
対値の平方根
4. 回帰が依存するデータの確認
異なる4種類のx,yの組が含まれるデータ
4組とも回帰直線は同じになる
凡例をグラフの外に出す
点の位置がどこにでも出うる場合に有効
グラフの外に凡例が出た!
barplotの返り値
棒の中央のx座標
barのx軸の位置は1:5には
ならないことに注意!
デバイスを開く
画像として保存するにはpng(),jpg(),bmp(),tiff()を用いる
plotなどで描く
dev.off()でデバイスを閉じる
グラフを右クリックしてビットマップにコピーから脱却
ループで名前を変えながら画像を何百枚も保存する
ことが可能になる
グラフの保存をスクリプトで行うメリット
plotするまでの流れを見た
上書きする方法はいくつかある
描画に利用する関数に応じて選びましょう
plotでもpar()を使いこなせばきれいに書ける
現時点では資料の充実度はggplot2よりも上でしょう
描画関数の返り値も役立つ
ヘルプのValueの項目に注目
金明哲 Rによるデータサイエンス
U.リゲス Rの基礎とプログラミング技法
竹中明夫 Rでプログラミング
http://takenaka-akio.cool.ne.jp/doc/r_auto/index.html
なめるな!plot

なめるな!plot