軸とテキスト
高水準作図関数 (e.g., plot, hist, boxplot, etc) は軸とテキストのオプションを指定できる。
# plot() 関数での指定
plot(x, y, main="タイトル", sub="サブタイトル",
xlab="x軸ラベル", ylab="y軸ラベル",
xlim=c(x軸最小値, x軸最大値), ylim=c(y軸最小値, y軸最大値))
以下の関数でより細かい指定が可能。また、以下も参照
R-tips: 低水準作図関数
Rjpwiki: ボックスと軸の形状
タイトル
title( ) 関数。図にラベルを追加する。
title(main="メインタイトル", sub="サブタイトル",
xlab="x軸ラベル", ylab="y軸ラベル")
他の 作図パラメータ (サイズ、フォント、向き、色など) も title( ) 関数で指定できる
# 赤のメインタイトル、青のサブタイトル、x軸、y軸ラベルを25%小さくして緑色に
plot(1:10, xlab="", ylab="")
title(main="赤のメインタイトル", col.main="red",
sub="青のサブタイトル", col.sub="blue",
xlab="x軸ラベルl", ylab="y軸ラベルl",
col.lab="green", cex.lab=0.75)
テキスト注釈
text( ) 、 mtext( ) 関数でテキストを追加できる。text( ) はグラフ内に追加、 mtext( ) はグラフの外の余白に追加。
text(location, "text to place", pos, ...)
mtext("text to place", side, line=n, ...)
オプション
option | description |
location | x座量、y座標を指定する。locator(1)関数でマウスインタラクティブに場所を指定することもできる。 |
pos | locationで指定した位置かた見てどこにテキストを挿入するか。 1=下, 2=左, 3=上, 4=右。 posでテキストを指定した場合、, offset= 関数で開始位置の微調整ができる。 |
side | どこの余白にするか。1=下, 2=左, 3=上, 4=右。line= はグラフから何行離すか。adj=0 は左下そろえ。adj=1 右上そろえ。何も指定しないと中央 |
フォントサイズ、色、フォントは cex, col, , font で変更可能。
グラフ内のポイントにラベルをつける
text( ) 関数でグラフ内のポイントのラベルづけができる。x座標、y座標それぞれをベクトルで指定し、ラベルもベクトルにしておけばよい。x座標ベクトル、y座標ベクトル、ラベルのベクトルは同じ長さでないといけない。
# ポイントのラベルづけ
attach(mtcars)
wt ; length(wt)# x座標ベクトル
mpg ; length(mpg) # y座標ベクトル
row.names(mtcars) ; length(row.names(mtcars)) # ラベルのベクトル
plot(wt, mpg, main="Milage vs. Car Weight",
xlab="Weight", ylab="Mileage", pch=18, col="blue")
text(wt, mpg, row.names(mtcars), cex=0.6, pos=4, col="red")
数式の挿入
TEXライクな感じで数式も挿入できる。demo(plotmath), help(plotmath) 参照。
軸
軸のカスタマイズは axis( ) 関数を使う。
axis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ...)
where
option | description |
side | どの軸を操作するか数値で指定する。 1=下, 2=左, 3=上, 4=右。 |
at | 目盛りをいくつとるか、ベクトルで指定する |
labels | 目盛りに付記されるラベル。指定しないと数値が使用される。 |
pos | 軸のラインを描く座標位置。要は他の軸とどこで交わるか。pos=0なら原点で交わる。 |
lty | 線のタイプ |
col | 線と目盛りマークの色 |
las | ラベルの向き。0なら線と平行、2なら線と垂直。y軸を描くときはlas=2が普通かも。 |
tck | 目盛りマークの長さ。負の数値だとグラフの外側、正の数値だとグラフの内側に目盛りマークが描かれる。0だと目盛りマークなし。1 (正の値) とするとグラフ内側にグリッド線が描ける。デフォルトは-0.01 |
(...) | そのほか gグラフのパラメータ参照。 |
axis関数を使って軸を描く場合、高水準作図関数のなかでaxes=Fとしたり、xaxt="n" , yaxt="n"としたりして最初は軸を描かないように指定すること。
# 軸の一例
# データ生成
x <- c(1:10);
y <- x;
z <- 10/x
# 右側の余白を多めに取る
par(mar=c(5, 4, 4, 8) + 0.1)
# xとyのグラフ描画
plot(x, y,type="b", pch=21, col="red",
yaxt="n", lty=3, xlab="", ylab="")
# x vs. 1/x の線を追加
lines(x, z, type="b", pch=22, col="blue", lty=2)
# 左側に軸を描く
axis(2, at=x,labels=x, col.axis="red", las=2)
# 右側に軸を描いて、小さめのテキスト、目盛りマークをつける
axis(4, at=z,labels=round(z,digits=2),
col.axis="blue", las=2, cex.axis=0.7, tck=-.01)
# 右の軸にタイトルをつける
mtext("y=1/x", side=4, line=3, cex.lab=1,las=2, col="blue")
# メインタイトルをつける。下と左の軸にラベルをつける。
title("An Example of Creative Axes", xlab="X values",
ylab="Y=X")
小さい目盛りマーク
Hmisc パッケージのminor.tick( ) 関数で短めラベルなしの目盛りマークが描ける。
library(Hmisc)
plot(1:10)
minor.tick(nx=5, ny=2, tick.ratio=0.5) # ラベルつきの目盛りの間に短い目盛りを描画
x軸は大きい目盛りの間を5つに分け (nx=5)、y軸は同様に2つに分けた (ny=2)。長さは大きい目盛りの半分 (tick.ratio=0.5) 。
基準線
基準線を追加するには abline( ) 関数を使う。
abline(h=yvalues, v=xvalues)
他の グラフのパラメータ (e.g., line type, color, and width) も abline( ) 関数のなかで指定できる。
plot(1:10)
# yの値が1,5,7のところに水平線を描く。
abline(h=c(1,5,7))
# xの値が1,3,5,7,9のところに青い点線で垂直線を描く。
abline(v=seq(1,10,2),lty=2,col="blue")
Note: grid( ) 関数でも基準線を描くことができる。
凡例
凡例の追加には legend() 関数を使う。
legend(location, title, legend, ...)
option | description |
location | 凡例の場所を指定するには複数の方法がある。
|
title | 凡例タイトル |
legend | ラベルの文字列ベクトル |
... | その他のオプション 凡例の色を指定する: col= 。ラベルのポイント信b乗るを指定する: pch= 。ラベル線の太さ指定には lwd= 、線の種類指定にはor lty= 。棒グラフや箱ヒゲ図、円グラフなど凡例に色つき四角を使いたいときはfill= 。 |
bty= "n" にすると輪郭線なしの凡例ボックス。bg は凡例ボックスの背景色。cex でサイズ、strong>text.col で文字の色。horiz=TRUE だとラベルが横に並ぶ。FALSEだと縦に並ぶ。
attach(mtcars)
boxplot(mpg~cyl, main="Milage by Car Weight",
yaxt="n", xlab="Milage", horizontal=TRUE,
col=terrain.colors(3))
legend("topright", inset=.05, title="Number of Cylinders",
c("4","6","8"), fill=terrain.colors(3), horiz=TRUE)
help(legend) の例が勉強になる。