今すぐ作図を行いたいという方は,この節は読み飛ばして とりあえず plot() の章へ進んで下さい.
R の作図機能は極めて多彩である.さまざまな種類の統計グラフを描述することが出来,全く新しい種類のグラフを描くことも出来る.R で作図を行なうには作図関数,作図デバイスの 2 つを用いて図を描く.
作図関数 : 実際に何かを描画する関数
作図デバイス : 図を出力する装置 (デバイス)

作図関数は high (low) level plotting function と graphics function
の 2 通りの英語があるので困るのだが,作図関数と作図デバイスはそれぞれ,グラフィックス関数やグラフィックスデバイスという訳が適切なのかもしれない・・・ので,適宜読み替えて頂きたい.ただし,パラメータに関しては
RjpWiki の記事にあったので,グラフィックスパラメータと訳している.
作図関数は出力装置に依存せず,例えば X ウインドウ上へ描画する場合でも,ポストスクリプト形式で作図出力を得る場合でも,同じ関数を使って同じ手順で作図が行なえるようになっている.作図命令は以下の 3 つの基本的なグループに分けられる.
高水準作図関数 : 一枚の完成された図を作成するための関数で,例えば散布図や関数,ヒストグラムを描く.
低水準作図関数 : 高水準作図関数で描いた図に追記するための関数で,線や点,文字列や多角形の塗りつぶしを行ったり,座標軸を描く,タイトルを記入するといった図の一部分を描いたりする.
対話的作図関数 : マウスなどで図表からプロット点を追加したり除いたりするための関数で,ウインドウ上に表示される ``+" マーク (クロスヘア) をマウスで操作し,位置を決めて点や文字を描く.
R はいろいろな作図関数を備えており,作図結果を様々な出力装置から得ることが出来る.出力する装置のことを R では作図デバイスあるいは作図機器と呼ぶ. R が起動されたとき,例えば UNIX , Linux では自動的に関数 X11() で,Windows では関数 windows() でデバイスドライバが初期化され,デバイスが稼動する.一度デバイスが稼動し始めれば,R の作図命令で様々なグラフ表示や自分でグラフ表示を定義することが出来るようになる.通常,作図デバイスは R が起動されたときに自動的に呼び出されるので,グラフィックスを行う際に作図デバイス云々を気にする必要はほとんどない.
R がサポートしている作図デバイスを呼び出す関数は help("Devices") で調べることが出来るが,代表的なデバイス関数には以下のようなものがある.
|
関数 |
説明 |
|
関数 |
説明 |
|
bitmap() |
ビットマップ |
bmp() |
ビットマップ |
|
|
dev2bitmap() |
ビットマップ |
jpeg() |
JPEG |
|
|
pdf() |
ADOBE PDF |
pictex() |
LaTeX ファイル |
|
|
png() |
PNG |
postscript() |
ADOBE ポストスクリプト |
|
|
quartz() |
Mac OS 版のデフォルトドライバ |
windows() |
Windows 版のデフォルトドライバ |
|
|
win.graph() |
Windows 版のドライバ |
win.metafile() |
Windows のメタファイル形式 |
|
|
win.print() |
Windows 版のドライバ |
x11() |
UNIX のデフォルトドライバ |
|
|
X11() |
UNIX のデフォルトドライバ |
xfig() |
Xfig |
あるデバイスの利用が終了した場合に dev.off() でデバイスを閉じることも出来る.例えば postscript() でポストスクリプトファイルを作成する場合,ファイルが壊れる不具合を防ぐには dev.off() でデバイスをすぐに閉じればよい.
data(cars) # PSデバイスを開き,出力fileを指定
postscript("myplot.eps", horizontal=FALSE, height=9, width=14, pointsize=15) # horizontal = FALSE を指定しないと
# TeX に取り込んだ際,横にひっくり返る
plot(cars, main = "Speed and Stopping Distances of Cars")
dev.off() # 必要な出力がすべて終ったらすぐに
# デバイスを閉じると不具合が起こりにくい
null device
1
|
作業ディレクトリのフルパスを指定しない限り,画像ファイル
(この場合は myplot.eps ) は現在の作業ディレクトリに保存される.作業ディレクトリの参照・変更方法は 作業ディレクトリの変更
の章を参照のこと.
同時に複数の作図デバイスを持つということがある.もちろん一度に一つの作図デバイスだけが作図命令を受け入れることが出来る (このデバイスをカレントデバイスという) のだが,複数のデバイスが開かれているときは,それらは待機状態としてデバイスリストを成していることになる.複数のデバイスを操作するための主要な命令は以下の通りである.
|
関数 |
説明 |
|
デバイス関数(bmp(), jpeg(), pdf() など) |
新しい作図デバイスを開いて待機状態を表すデバイスリストを更新し,現在のデバイス (カレントデバイス) に指定する.今後はこのデバイスにグラフ出力が送られることになる. |
|
dev.list() |
アクティブなデバイスの番号と名前を返す. |
|
dev.next() |
カレントデバイスの次の位置の作図デバイスの番号と名前を返す. |
|
dev.prev() |
カレントデバイスの前の位置の作図デバイスの番号と名前を返す. |
|
dev.set(which=k) |
デバイスリストの k 番目の作図デバイスの番号と名前を返す. |
|
dev.off(k) |
デバイスリストの k 番目の作図デバイスを終了させる. |
|
dev.copy(device, which=k) |
作図デバイス k のコピーを作成する.device は postscript などのデバイス関数を引数にする. |
|
dev.copy2eps(file="") |
eps 出力を指定した dev.copy() と同じ動作を行う.様々なフォント名を指定することが出来る. |
|
dev.print(device,which=k) |
アクティブな作図デバイス k のコピーを作成し,他のグラフィックスデバイス (既定では postscript) に再出力する.複製されたデバイスは直ちに閉じられ,終了処理がなされる. |
|
graphics.off() |
無効なデバイスを取り除き,リスト中の全てのデバイスを終了する. |
以下に,図を PDF ファイルに保存する例を挙げる.後者の方法ならば,png() ,bmp() ,jpeg() を指定することで,それぞれの形式の画像ファイルが得られる.
plot(1:10)
dev.copy(pdf, file="finename.pdf")
dev.off() # 必要な出力がすべて終ったらすぐにデバイスを閉じる
# または,前述の作図デバイスで同じことをやると ...
pdf() # pdf デバイスを開く()
plot(1:10) # プロット → Rplots.pdf に出力
dev.off() # 必要な出力がすべて終ったらすぐにデバイスを閉じる
|
また,図を eps 形式で保存する場合は以下のようにすればよい.
X11() # X11 デバイスを開く ( OS によっては省略可)
plot(1:10)
dev.copy2eps(file="finename.eps", width=6) # 幅と高さの一方を省略してもよい
# または... dev.print() でコピー出力すると...
X11() # X11 デバイスを開く ( OS によっては省略可)
plot(1:10) # X11 デバイスに出力
dev.print(file="finename.eps", # 既定で EPS ファイルに出力
width=10, height=10, horizontal=FALSE)
|
Windows 版 R ならば,図を右クリックしてメニューから出力することが出来る.

R
で描いた図を Open Office の Draw で編集する(Windows 版の場合)
R で描いた図を Open Office の Draw で編集することが出来る.ここでは Windows 版の場合の例を挙げる.
まず,Open Office 2.0.0 をインストールする.
次に,R で図を描き,emf(メタファイル)形式で図を保存する.
描いた図を Open Office の Draw で開き,出てきた図をクリックする.

メニューの [変更] から [切り離す] を選択する.こうすることで,Draw の機能を使って図を編集することが出来るようになる.

図を編集し終わったら,メニューの [ファイル] から [エクスポート] を選択する.

あとは適当な形式で図を保存すればよい.
