なめるな!plot
DESCRIPTION
Tokyo.R #10TRANSCRIPT
@ito_yanemail: 1mail2itoh3あっとgmail.com
2010.10.31Tokyo.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")+labs(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