DATE : 2007/05/08 (Tue)
棒の先端に項目名のある横棒グラフは、次の手順で描くことができます。
- 項目名のない横棒グラフを描く。
- 項目名を各棒の先端に描く。
例を描く際に使用するのは、1ユーロに対するユーロ圏各国通貨の換算レートです。このデータセットは R に内蔵されているので、以下を実行すると換算レートを表すベクトルが出てきます(「>」はプロンプトです)。help 関数で詳細を調べることもできます。
> euro
結果の一部を取り出すと、次のようになっています。
ATS BEF DEM ESP FIM FRF 13.760300 40.339900 1.955830 166.386000 5.945730 6.559570
ベクトルの各要素にはユーロ圏各国通貨の名前が付けられています。例えば、ATS はオーストリア・シリングです。
なお、R 2.5.0 Windows 版で動作を確認しています。
項目名のない横棒グラフを描く
項目名のない横棒グラフは次のように描きます。
> names.y <- barplot(euro, horiz = TRUE, names.arg = NA)
横棒グラフを描くには horiz = TRUE に設定します。項目名を表す names.arg 引数は、項目名を描かないように NA と設定します。なお、horiz = TRUE と設定すると下から順に棒グラフが描かれます。上から順に描くには、rev 関数を使って euro のベクトルを逆順にします。
ここで、 barplot 関数の戻り値を names.y に代入しています。barplot は、各棒の先端の中心座標(横棒グラフの場合は y 座標)をベクトルとして返します。
項目名を各棒の先端に描く
各棒の先端の中心座標を使って、項目名を描きます。
> text(euro, names.y, names(euro), pos = 4)
x 座標に棒グラフの長さ(=換算レート)を指定し、y 座標に各棒の先端の中心座標 names.y を指定します。euro のベクトルから names 関数を使って項目名を取り出します。文字列の配置を表す引数 pos は 4(座標の右側)に設定します。横棒グラフで項目を上から描いた場合は、ここでも euro のベクトルを逆順にします。
なお、上で描いたグラフは ITL(イタリア・リラ)の換算レートのきりが悪いため、この項目名だけ表示されません。そのような場合、以下のようにグラフの x 軸の範囲を調節します。
> names.y <- barplot(euro, horiz = TRUE, names.arg = NA, xlim=c(0, 2500)) > text(euro, names.y, names(euro), pos = 4)
x 軸の範囲を調節すると、きりが悪いために表示されない項目名も表示できるようになります。この例では、0 ~ 2500 に設定しました。