今回はid:wakutekaがRグラフィックス(see:参考資料)を購入したので,わくてかさんのお話を聞きながらRグラフィックスの中身をざっと見てみようぜっていう感じです.
参考資料
作図システムの階層構造
grDevices
Graphics Systems
- graphicsパッケージとgridパッケージが主要なヤツ?
- グラフィックデバイスの上にいろいろ描く仕組み
- 低水準作画関数の集まり
- latticeとかのグラフィック関連のパッケージはこれをベースに作られている
Graphics Packages
- latticeとか.
本の流れ
作図法の種類
- 2つの作図法がある(graphics, grid)
- traditionalな作図: barplotとか
traditionalな作図の説明
- traditionalな作図システムは総称的
- plot()とかはクラスを判別して実際に使用する関数を決定している
traditionalな作図における引数
- 細かいことはそれぞれの関数のhelp見ようぜ
- colみたいに色指定用の引数もあるけど,軸や軸ラベルの色みたいなものは普通変えられない
- 総称的だから細かいことできない?
3次元データの可視化に便利な関数
- persp()やcontour()
- 多変数の2変数の可視化:pairs()→散布図行列
- library(scatterplot3d)の例:2変数関数での最急降下法をRでやってみた - yasuhisa's blog
対話的にアレできる関数
- locator()→クリックした場所の座標
- identify()→クリックした場所から一番近いプロットの点の座標
- 参考資料
- もうちょっと高度なグラフィックス特集 - yasuhisa's blog
- identify()を使って24はどれだゲームができる
==== traditionalな作図の話はこのへんまで ====
↓こっからgrid的なヤツ
lattice
- library(lattice)
- xyplot(lat~long, data=quakes, pch=".")
- 点だけのが出る
- tplot <- xyplot(lat~long, data=quakes, pch=".")
- こうするとプロットされない
- なんだかggplotっぽくないですか?
- そうです!ggplot2もgrid使ってるんです!!!
- xyplotが返すのはtrelisクラスのオブジェクト
> p <- xyplot(lat~long, data=quakes, pch=".") > class(p) [1] "trellis"
-
- 代入したオブジェクトはprint(tplot)みたいな感じプロットできる
- print()はbaseに入ってる
- オブジェクトの変更,修正はupdate()を使う
- update(tplot, main="Earthquake in the Pacific Ocean\n(since 1964)")
- ggplot2なら+でlayerを追加,修正していくが,そんな感じ.やってることは同じ.
- オブジェクト修正しただけじゃ当然プロットには反映されないので,print()の実行忘れずに
あなたがlatticeを使うべき三つの理由
- 見た目カッコイイ
- 色分けとかラベルとかのデフォルト値
- 複数の水準を持つデータを一度にグラフ化できる
- グループ変数を基準にデータ分けてヒストグラム書くとかそんなの
- y ~ x | g(訳:gで分類してy~xのプロット描いて!)
- ggplot2だとfacet_wrap(~g)とかでlayer設定
- gridったらさいきょーね
===== 今日はここまで =====
わくてかさんどうも乙でした.
本の雰囲気としてはlatticeすげーよlatticeみんな使おうぜって感じかな.
gridはggplot2も使ってるらしいし,Rグラフィックスちょっと欲しくなった.