第2回では、グラフにタイトルや日本語ラベルを付けて「資料」として整える方法を学びました。 しかし、どんなデータでも折れ線グラフにすれば良いというわけではありません。

今回は、データの性質に合わせて最適な見せ方を選ぶための「棒グラフ・散布図・円グラフ」の作り方を解説します。 これらを使い分けるだけで、データの説得力は劇的に向上します!
第3回:使い分けが肝心!棒グラフ・散布図・円グラフの作り方【Pythonでグラフを作る短期連載】
1. 比較に最適!「棒グラフ」を作ろう
アンケートの結果や商品の売上など、カテゴリーごとの大きさを比較したいときは「棒グラフ」の出番です。 Matplotlibでは plt.bar() を使います。
import matplotlib.pyplot as plt
import japanize_matplotlib
labels = ['リンゴ', 'バナナ', 'ミカン', 'ブドウ']
values = [120, 80, 150, 50]
plt.bar(labels, values, color='skyblue') # 棒グラフを作成
plt.title('果物の販売数比較')
plt.ylabel('販売個数')
plt.show()


2. 関係性を見抜く!「散布図」を作ろう
「気温が高いとアイスが売れる」といった、2つのデータの相関関係を見たいときは「散布図」が最強です。 plt.scatter() を使い、点を打っていきます。
import matplotlib.pyplot as plt
# 気温と売上の例
temp = [25, 28, 32, 35, 30, 26, 33]
sales = [100, 150, 220, 300, 180, 120, 250]
plt.scatter(temp, sales, color='red', marker='o') # 散布図を作成
plt.title('気温と売上の相関')
plt.xlabel('最高気温(℃)')
plt.ylabel('売上(円)')
plt.grid(True) # グリッド線を表示して見やすく
plt.show()


3. 内訳を可視化!「円グラフ」を作ろう
アンケートの回答比率など、全体に対する割合を示したいときは「円グラフ」を使います。 plt.pie() を使い、autopct という設定でパーセントを表示するのが定番です。
import matplotlib.pyplot as plt
import japanize_matplotlib
labels = ['A社', 'B社', 'C社', 'その他']
sizes = [45, 30, 15, 10]
# 円グラフを作成(開始位置やパーセント表示を設定)
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, counterclock=False)
plt.title('市場シェアの内訳')
plt.show()


4. まとめ:グラフ選びの「黄金ルール」
エンジニアとしてデータを扱う際、どのグラフを選ぶかは「何を伝えたいか」で決まります。
- 推移を見たい:折れ線グラフ(第1回・第2回)
- 大きさを比べたい:棒グラフ
- 関係性を探したい:散布図
- 割合を見せたい:円グラフ
主要4種のグラフとコマンドの対応表です。迷った時の参考にしてください。
| グラフの種類 | Matplotlibコマンド | 主な用途 |
|---|---|---|
| 折れ線グラフ | plt.plot() |
時系列の推移・変化 |
| 棒グラフ | plt.bar() |
項目別の大きさ比較 |
| 散布図 | plt.scatter() |
2つのデータの相関関係 |
| 円グラフ | plt.pie() |
全体に対する割合・内訳 |
第3回はここまでです。これで主要なグラフは一通り描けるようになりましたね!
次回は、もっと少ないコードで「プロ級」のオシャレなデザインが作れる「Seaborn」ライブラリの世界に足を踏み入れてみましょう。