Rによる円グラフの描画
R で円グラフ (pie chart) を描く.円グラフには軸がなく,エラーバーもなく,情報量はすごく低い.研究で用いる場合,全ての場合で棒グラフによる代替が可能なので,特別な理由がない限り避ける.企業でのプレゼンテーションを含め,一般的な利用の際は,視覚的な理解のしやすさにアドバンテージがある.円グラフを使うと,全体に対して個々がどれくらいの割合の寄与をするのかを一瞬で把握できる.以下では,5つの整数からなるデータ (167,146,132,114,58,45) に対して円グラフを描く.最初に,データを変数 dv に格納する.このデータは全て非負の値である必要がある.
$ dv=c(167, 146, 132, 114, 58, 45)
簡単な描画
これに対して最も簡単に円グラフを描くには以下のように打つ.
$ pie(dv)
結果は以下のようになる.
図の装飾
コマンド pie() には数多くのオプションが設定されており,それらを設定することできれいな円グラフを描くことができる.以下のように打つときれいな図が描ける.ここで,radius は円グラフの大きさを指定する.デフォルトでは0.8が与えられているので上の図のように余白が大きい.labels には各データの表示名を書く.col には各領域の色を指定する.clockwise には T または F を指定し,T の場合,データは時計回りでプロットされる.border には分割線の色を指定する.main にはグラフのタイトルを,cex.main にはその文字の大きさを指定する.
$ pie(dv,radius=1,labels=c("A","B","C","D","E","F"),col=c("#08519c","#3182bd","#6baed6","#9ecae1","#c6dbef","#eff3ff"),clockwise=T,border="#ffffff",main="Pie chart",cex.main=2)
これを実行した結果は以下のようになる.
データ x の入力は以下のように,表示名と共に入力する方法でも可能.ここで,density は領域に斜線を引くためのオプション.
$ pie(c(Apple=7,Sony=2,Microsoft=1),density=c(70,20,10))
これを実行した結果は以下のようになる.
オプション一覧
オプションには以下のようなものがある.グラフィックパラメーターはグラフタイトルと軸ラベルにのみ効く.
オプション | 詳細 | 使用例 |
---|---|---|
x | 円を描きたいデータをベクトル形式で指定 | x=A |
labels | データの表示名を設定する. | labels=c("A","B","C") |
edges | 円グラフの外郭の丸みを表現するための角の数.この値が大きいほど滑らか.1の場合,直線になる. | edges=200 |
radius | 円グラフの大きさをコントロール.デフォルトは0.8なので,画像にしたときに大きな余白が生じる. | radius=1 |
clockwise | T か F を指定.デフォルト (F) の場合,入力要素は反時計回りの順番で円グラフに設定される. | clockwise=T |
init.angle | 数値を指定.この値を変化させると,それに応じて円グラフが回転する. | init.angle |
density | 値を指定.各領域に斜線を引く.値の大小で斜線の数をコントロールする. | density=c(10,20,10) |
angle | 上の斜線の角度を指定 | angle=30 |
col | 領域の色を指定 | col="red" |
border | 棒の枠線の色を指定 | col="#ffffff" |
main | 円グラフのタイトルを指定 | main="Pie chart B" |
xlab | X軸ラベルを指定 | xlab="price" |
ylab | Y軸ラベルを指定 | ylab="frequency" |
cex.main | グラフのタイトルのフォントサイズの指定 | cex.main=4 |
cex.lab | 軸ラベルのフォントサイズの指定 | cex.lab=1.6 |