Skip to content

第 2 回 質問と回答

このページでは、第 2 回「データ可視化 (1)」に関して寄せられた質問と、それに対する回答をまとめています。質問者の氏名や学生番号は掲載せず、匿名で扱います。

質問の送り方

質問は 「📮 連絡フォーム」 または「各回の演習確認フォーム」からお寄せください。いただいた内容は、同様の疑問を持つ他の受講生にも役立つようこのページに随時追加していきます。


A. Matplotlib の具体的な使い方について

色などはどうやって表示されているのか気になった

色は color 引数で指定できます。

plt.plot(x, y, color="red")            # 色名
plt.plot(x, y, color="#FF5733")        # カラーコード
plt.plot(x, y, color=(1.0, 0.3, 0.2))  # RGB(各値 0〜1)
plt.bar(categories, values, color=["red", "blue", "green", "orange"])  # 要素ごと

よく使う色名には "red"・"blue"・"green"・"black" などがあり、"r"・"b"・"g"・"k" のように 1 文字で表すこともできます。

棒グラフのリスト内に「" "」が含まれているが、散布図のような含まれないコードもあるのは、どんな違いがあるのか気になった

グラフの種類によって、軸が扱うデータの種類が違います。

  • 棒グラフ — 横軸は カテゴリ(名前やラベル)なので、文字列でも数値でも OK
  • 散布図 — 横軸・縦軸が両方とも 数値(座標) を表すので、文字列は使えない

「カテゴリごとの値を比べる」棒グラフではラベルが文字列になり、「2 つの数値データの関係を見る」散布図では両方が数値になる、という違いです。

plt.grid(True) の True はなんだろう? なしでも実行できたため、この True の必要性がわからなかった

plt.grid() は、グリッド線(マス目)を表示するかどうかを決める関数です。

  • plt.grid(True) — 表示する
  • plt.grid(False) — 表示しない

引数なしの plt.grid() でも、暗黙的に True として扱われるため、書かなくても動きます。ただし、コードを読む人にとっては「ここでグリッド線を出したい」という意図が明確になるので、明示的に True と書いておくと親切です。

なぜ円グラフは何も設定をしないと、時計の 3 時の位置から反時計回りに描かれるのか?

Matplotlib は数学や科学計算の分野で広く使われてきたライブラリで、数学の慣習に合わせてあるためです。単位円では角度 0° を x 軸の正方向(3 時の位置)にとり、反時計回りに角度が増えていきます。円グラフもこの慣習をそのまま採用しているのです。

複数のデータを一つのグラフに可視化する方法が知りたい / 同時に複数のグラフを使えるようにするにはどのようなプログラムを組めばいいのか

同じ plt.plot() や plt.bar() を続けて呼び出すだけで重ね描きできます。区別のために label を付けて plt.legend() で凡例を出すのがおすすめです。

plt.plot(months, sales_2025, label="2025年")
plt.plot(months, sales_2026, label="2026年")
plt.legend()
plt.show()

折れ線と棒グラフの組み合わせも同じ要領で書けます。

plt.bar(months, sales, label="売上")
plt.plot(months, target, color="red", marker="o", label="目標")
plt.legend()
plt.show()

左右で別の軸を使う「2 軸グラフ」は少し高度な書き方になりますが、必要になったら紹介します。

円グラフのラベルの位置を変える方法が気になった

ラベルの位置は labeldistance、パーセント表示の位置は pctdistance で調整できます(どちらも円の半径を 1 としたときの倍率)。

plt.pie(
    values,
    labels=labels,
    autopct="%1.1f%%",
    labeldistance=1.1,   # ラベルは円の外側(半径の 1.1 倍の位置)
    pctdistance=0.8,     # パーセントは円の内側(半径の 0.8 倍の位置)
)

円グラフで言うと割合の大きい順にする方法、棒グラフなどで言うと y 軸の小さな値を省略して表示する方法など、細かい見やすくする方法を学びたい

円グラフを大きい順に並べるには、事前にデータ自体を大きい順にソートしておく必要があります。ソートの具体的な方法は、データ操作を本格的に扱う第 4〜6 回(NumPy・pandas・前処理)で紹介します。

棒グラフで y 軸の一部を省略したい場合は、plt.ylim() で表示範囲を絞ることができます。

plt.bar(categories, values)
plt.ylim(400, 500)   # 400〜500 の範囲だけ表示

B. グラフの使い分けについて

可視化の表現には複数あると学んだので、どのデータにどのグラフを使うかが適切に判断できるようになりたい

「何を伝えたいか」で使うグラフが決まります。代表的な使い分けは以下のとおりです。

見たいもの 使うグラフ
値の変化 折れ線グラフ
値の大小を比べる 棒グラフ
2 つのデータの関係 散布図
全体に占める割合 円グラフ
データの分布 ヒストグラム
ばらつきや外れ値 箱ひげ図

C. 講義進行について

もう少し演習の難易度を上げてほしい

コメントありがとうございます。今後は、基礎的な演習問題だけでなく、応用的な演習問題を多く用意していくことを検討いたします。