R - バーチャート:美しい視覚化の初心者ガイド

こんにちは、データ可視化の志願者さんたち!Rとバーچートの世界へのエキサイティングな旅にあなた们的ガイドとして参加できることを嬉しく思います。私がコンピュータサイエンスを10年以上教えている経験から言えることは、視覚的に魅力的なチャートを作成することはスキルだけでなく、アートフォームでもあります。そして、今日はRで皆さんをアーティストにします!

R - Bar Charts

バーچートとは?

コードにどぶり込む前に、まずバーچートとは何かを理解しましょう。パーティーで友達の身長を比較したいとします。壁に並べる代わりに、それぞれの身長を表す rectangle を描くことができます。それがバーچートの基本的な概念です。バーچートは、カテゴリー間の比較を示すために長方形のバーを使用します。

では、Rコードで手を汚しましょう!

基本的なバーچート

まず、簡単な例から始めましょう。アイスクリームのフレーバーごとに売れたアイスクリームの数を視覚化したいとします。

# アイスクリームのフレーバーを格納するベクタを作成
flavors <- c("バニラ", "チョコレート", "イチゴ", "ミント")

# 売れたアイスクリームの数を格納するベクタを作成
scoops <- c(50, 75, 30, 45)

# バーچートを作成
barplot(scoops, names.arg = flavors)

このコードを実行すると、基本的なバーچートが表示されます。それぞれのバーはフレーバーを表し、その高さは売れたアイスクリームの数を示します。シンプルですね?でも少し平凡です。少し凝らしてみましょう!

バーチャートのラベル、タイトル、色

さて、チャートをより情報的で視覚的に魅力的なものにしましょう。

# より魅力的なバーچートを作成
barplot(scoops,
names.arg = flavors,
col = c("アイボリー", "チョコレート", "ピンク", "ライトグリーン"),
main = "フレーバーごとのアイスクリーム販売",
xlab = "フレーバー",
ylab = "売れたアイスクリームの数",
border = "ダークグレイ",
ylim = c(0, 100))

# 各バーの上にテキストラベルを追加
text(x = 1:length(scoops), y = scoops, labels = scoops, pos = 3, cex = 0.8)

以下に説明します:

  • col:各バーにそのフレーバーに合った色を指定します。楽しいですね?
  • main, xlab, ylab:タイトルと軸のラベルを追加します。
  • border:バーの境界線を追加します。
  • ylim:y軸の範囲を設定します。
  • text()関数:各バーの上にアイスクリームの数を表示します。

このコードを実行すると、プロ並みの見た目のバーچートが完成します。ゴードン・ラムゼイがデータサイエンティストであれば、彼もこれを承認するでしょう(もちろん、彼がデータサイエンティストであればの話ですが)。

グループバーچート

次に、レベルアップしましょう。アイスクリームの販売を異なる月ごとに比較したいとします。これはグループバーچートが必要です!

# アイスクリームの販売データを作成
sales <- matrix(c(50, 75, 30, 45,
60, 80, 40, 50,
45, 70, 35, 40),
nrow = 3, byrow = TRUE)

# 列名(フレーバー)と行名(月)を設定
colnames(sales) <- c("バニラ", "チョコレート", "イチゴ", "ミント")
rownames(sales) <- c("6月", "7月", "8月")

# グループバーچートを作成
barplot(sales,
beside = TRUE,
col = c("スカイブルー", "ピンク", "ライトグリーン"),
legend.text = rownames(sales),
args.legend = list(x = "topright", bty = "n"),
main = "フレーバーごとで月ごとのアイスクリーム販売",
xlab = "フレーバー",
ylab = "売れたアイスクリームの数")

ここで、beside = TRUEはRにバーを並べて配置するように指示します。legend.textargs.legendパラメータはチャートに凡例を追加します。

スタックバーچート

最後に、スタックバーچートを作成しましょう。これは合計と構成を同時に表示したいときに最適です。

# スタックバーچートを作成
barplot(sales,
col = c("スカイブルー", "ピンク", "ライトグリーン"),
legend.text = rownames(sales),
args.legend = list(x = "topright", bty = "n"),
main = "フレーバーごとのアイスクリームの合計販売",
xlab = "フレーバー",
ylab = "合計売れたアイスクリームの数")

ここで唯一の違いは、beside = TRUEを削除したことです。今では各フレーバーのバーが積み重ねられ、合計販売と各月の寄与が表示されます。

結論

そして、皆さん!基本的な、グループ、スタックのバーچートをRで作成することを学びました。これをマスターする鍵は練習です。色を変更したり、更多信息を追加したり、甚至チャートをアニメーション化すること(はい、Rでそれは可能です!)を試してみてください。

以下は、私たちが使用した主な関数の簡単な参照表です:

関数 説明
barplot() バープロットを作成します
text() プロットにテキストを追加します
legend() プロットに凡例を追加します
matrix() マトリックスを作成します
c() 値をベクターやリストに結合します

忘れないでください、データ可視化はデータで物語を伝えることです。それでは、実験を試み、美しいバーچートを通じてデータに語らせてください!

ハッピーコーディング、そしてあなたのバーは常に完美に整列していることを祈っています!

Credits: Image by storyset