なめるな!plot

24
@ito_yan email: 1mail2itoh3あっとgmail.com 2010.10.31 Tokyo.R #10

Upload: itoyan110

Post on 07-Jul-2015

2.066 views

Category:

Technology


0 download

DESCRIPTION

Tokyo.R #10

TRANSCRIPT

Page 1: なめるな!plot

@ito_yanemail: 1mail2itoh3あっとgmail.com

2010.10.31Tokyo.R #10

Page 2: なめるな!plot

� @ito_yanが勉強会のために作成した資料です� 所属する組織の意見/見解ではありません� 当たり前という方は睡眠学習� そんな発表で大丈夫か?

� 大丈夫だ、問題ない

� 本資料はWeb上での掲載に当たり、一部修正を加えております

Page 3: なめるな!plot

� twitterID :@ito_yan (アンダーバーに注意!)

� お仕事� 主にデータ解析で困っている人を助けること

� 顧客の業種は様々

� 業務でR使ってます� 代わりにメジャーな言語が触れません

� R歴約4年� 本格的な利用は1年半

Page 4: なめるな!plot

� 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")

使えばいいじゃない?それで綺麗に描けるのだから

Page 5: なめるな!plot

� 余分なライブラリはほとんど利用しない� why?

・顧客の利用する環境がオフラインだったりする→できるだけ最初から用意されているパッケージを利用したい

というわけでRのインストール時から存在するplot達の出番基本的な描画関数だけ使って綺麗に見せよう

Page 6: なめるな!plot

� ?plotで確認してみる� plot(x,y,…)という呼び出し方

� 実際には指定できるオプションは膨大であるが、主なオプションとしてヘルプに記述されているのは以下の通り

オプションオプションオプションオプション 意味意味意味意味

type 点の書き方

main グラフの上に書くタイトル

sub グラフの下に書くサブタイトル

x(y)lab 軸の名前

asp x,y軸の範囲の比率

これらを用いて見栄え良く改良することができる

Page 7: なめるな!plot

� plot(rnorm(10)) � plot(UKgas)

見た目は異なるが、エラーもなく描画できる

Page 8: なめるな!plot

� rnorm(10)

� UKgas (英国の四半期ごとのガス利用量)

・・・ 全然同じ形式じゃないよ!

Page 9: なめるな!plot

� 関数名だけ入力すると関数定義が見られる

UseMethodが入力されるデータ(オブジェクトのクラス)に応じて利用するメソッドを探してくれる

第一引数は関数であるか

Page 10: なめるな!plot

� methodsでUseMethodの内容を覗いてみる

“総称的関数.オブジェクトのクラス”という名前付けのルールがあり、適したものが選ばれる

plot.integerはない→plot.defaultで描く

plot.tsで描く

Page 11: なめるな!plot

� 先頭から順にマッチするものを探索

no、differentというクラスは存在しないので、plot.defaultが呼ばれる

クラスの上書きもできる

Page 12: なめるな!plot

� 作図関数は大きく3種類に分けられる� 高水準作図関数

� 描画範囲を設定+描画� ex. plot,barplot,hist

� 低水準作図関数� 高水準作図関数で設定した情報をもとに書き込む� ex. abline , lines

� 対話的作図関数(利用頻度低)� マウスで座標位置を取得するlocator()� 図表中の点の情報を得るidentify()

� 高水準+低水準 → 相性がいい� 高水準+高水準 → 描画が面倒

Page 13: なめるな!plot

� plotを2回繰り返すと…� 前のグラフが消えてしまう

右図はplot(rnorm(10))のみが反映されている

Page 14: なめるな!plot

� グラフィックのパラメータ設定関数� 関数の返り値は変更前のパラメータ

� 元に戻したい場合に利用しましょう

主主主主ななななオプションオプションオプションオプション 効果効果効果効果

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

デバイス領域

作図領域

プロット領域

Page 15: なめるな!plot

� par(new=T)を利用する� 高水準作図関数を繰り返し利用する時に便利� 毎回描画範囲を固定する必要がある

� xlim、ylimを設定して描画範囲を固定

y軸方向の描画範囲を設定

xlim,ylimにはc(描画範囲の最小値、描画範囲の最大値)という長さ2のベクトルを指定する.rangeの返り値と同じ形式である

Page 16: なめるな!plot

� オプションadd=Tの利用� curveなど一部の高水準作図関数は、低水準作図関数と同じようにふるまえる

Page 17: なめるな!plot

� lmの返り値をplot� 回帰診断の結果(4グラフ)

2*2に分割して、上の行から順にグラフを埋める

回帰診断の内容1. あてはめ値に対する残差2. 残差の正規性の確認

3. あてはめ値に対する残差の絶対値の平方根

4. 回帰が依存するデータの確認

Page 18: なめるな!plot

� 異なる4種類のx,yの組が含まれるデータ� 4組とも回帰直線は同じになる

Page 19: なめるな!plot

� 凡例をグラフの外に出す� 点の位置がどこにでも出うる場合に有効

グラフの外に凡例が出た!

Page 20: なめるな!plot

� barplotの返り値� 棒の中央のx座標

barのx軸の位置は1:5にはならないことに注意!

Page 21: なめるな!plot

� デバイスを開く� 画像として保存するにはpng(),jpg(),bmp(),tiff()を用いる

� plotなどで描く� dev.off()でデバイスを閉じる

� グラフを右クリックしてビットマップにコピーから脱却� ループで名前を変えながら画像を何百枚も保存することが可能になる

グラフの保存をスクリプトで行うメリット

Page 22: なめるな!plot

� plotするまでの流れを見た� 上書きする方法はいくつかある

� 描画に利用する関数に応じて選びましょう

� plotでもpar()を使いこなせばきれいに書ける� 現時点では資料の充実度はggplot2よりも上でしょう

� 描画関数の返り値も役立つ� ヘルプのValueの項目に注目

Page 23: なめるな!plot

� 金明哲 Rによるデータサイエンス� U.リゲス Rの基礎とプログラミング技法� 竹中明夫 Rでプログラミング

� http://takenaka-akio.cool.ne.jp/doc/r_auto/index.html

Page 24: なめるな!plot