Rの関数:barp {plotrix}

Rの関数から barp {plotrix} を確認します。

関数 barp とは

barp(Bar Plot)は、R標準の barplot 関数を拡張し、視覚的な装飾機能や実用的な表示オプションを備えた棒グラフ描画関数です。

本関数は、単なる数値の視覚化にとどまらず、円柱状の立体的な表現(cylindrical)やドロップシャドウ(shadow)、さらには色の代わりに記号で領域を塗りつぶすハッチング表現(pch)など、多彩なグラフィック効果を容易に付与できます。

内部的には、データの形式(行列、データフレーム、あるいは特定の統計クラス)を自動的に判別し、適切にグルーピングされた棒の配置を計算します。

また、軸ラベルが重なりやすい場合にラベルを互い違いに配置する機能(stax オプション)を備えており、情報密度の高いグラフにおいても高い視認性を維持できる点が大きな特徴です。

関数 barp の活用シーン

  • プレゼンテーション用図表の作成

    • 円柱状の描画や影の付与により、標準的なグラフよりも印象的で立体感のある図表を作成したい場合。
  • 白黒印刷向けの資料作成

    • 色による区別が困難な媒体において、pch 引数を用いて異なる記号で棒を塗りつぶし、各カテゴリを明確に識別させたい場合。
  • 項目名が長いデータの可視化

    • X軸のカテゴリ名が多く、名前が重なってしまう際に、ラベルを上下にずらして配置(staggered labels)することで可読性を確保したい場合。
  • 対数スケールを伴う比較

    • Y軸を対数スケールに設定しつつ、棒グラフとしての体裁を保ちたい分析シーン。

関数 barp の引数

library(plotrix)
args(barp)
function (height, width = 0.4, names.arg = NULL, legend.lab = NULL, 
    legend.pos = NULL, col = NULL, border = par("fg"), main = NULL, 
    xlab = "", ylab = "", xlim = NULL, ylim = NULL, x = NULL, 
    staxx = FALSE, staxy = FALSE, height.at = NULL, height.lab = NULL, 
    cex.axis = par("cex.axis"), pch = NULL, cylindrical = FALSE, 
    shadow = FALSE, do.first = NULL, ylog = FALSE, srt = NULL, 
    ...) 
NULL
  • height

    • 棒の高さを指定する数値ベクトル、行列、またはデータフレームです。
  • width

    • 棒の幅を相対的な数値で指定します。初期値は 0.4 です。
  • names.arg

    • 各棒またはグループの下に表示するラベル(X軸の項目名)を指定します。
  • legend.lab

    • 凡例を表示する場合のラベルテキストを指定します。
  • legend.pos

    • 凡例を表示する位置を指定します。指定がない状態で legend.lab を入力すると、描画後にグラフ上をクリックして位置を決定する対話モードが起動します。
  • col

    • 棒の塗りつぶし色を指定します。
  • cylindrical

    • 論理値により、棒を円柱状の立体的なデザインで描画するかどうかを制御します。
  • shadow

    • 論理値により、棒にドロップシャドウ(影)を付与するかどうかを指定します。
  • staxx, staxy

    • 軸ラベルを互い違い(スタッガード配置)にするかどうかを論理値で指定します。
  • pch

    • 棒の内部を塗りつぶす際に使用する記号(プロット文字)を指定します。
  • ylog

    • Y軸を対数スケールにするかどうかを論理値で指定します。
  • srt

    • 軸ラベルの回転角度を指定します。

サンプルコード

以下に、barp の特徴的な機能を活用したサンプルコードを提示します。

# 1. 解析用データの準備(3つの拠点における、4つの四半期売上を想定)
sales_data <- matrix(c(
  12, 15, 18, 20, # 拠点A
  10, 18, 14, 22, # 拠点B
  15, 12, 19, 17 # 拠点C
), nrow = 3, byrow = TRUE)

rownames(sales_data) <- c("東京本店", "大阪支店", "福岡営業所")
colnames(sales_data) <- c("第1四半期", "第2四半期", "第3四半期", "第4四半期")

# 2. 描画パラメータの設定
# 各拠点に対応する色を定義します
office_colors <- c("#ff9999", "#99ff99", "#9999ff")

# 3. barp関数を用いたグラフの描画
# 円柱状のデザイン(cylindrical)と影(shadow)を有効化します
barp(
  height = sales_data,
  names.arg = colnames(sales_data),
  main = "拠点別・四半期売上推移報告",
  xlab = "期間",
  ylab = "売上高 (百万円)",
  col = office_colors,
  cylindrical = TRUE, # 立体的な円柱表現を適用
  shadow = TRUE, # 影を付与して視覚的奥行きを演出
  staxx = TRUE, # ラベルの重なりを防ぐため互い違いに配置
  ylim = c(0, 25)
)

# 凡例を追記します
legend("topleft",
  legend = rownames(sales_data),
  fill = office_colors,
  bty = "n"
)
Figure 1

以上です。