グラフの特徴と用途を学ぶ。「Python」と「Matplotlib」で作るデータ分析グラフ

Matplotlibグラフのアイキャッチ IT

はじめに

グラフは、データを直感的に理解しやすくするために非常に重要なツールです。特に、複雑な数値や膨大なデータを扱う際には、グラフを用いることで傾向や特徴を視覚的に把握できます。本記事では、Pythonで最も人気のあるグラフ作成ライブラリ「Matplotlib」を使用して、データタイプごとの適切なグラフの選び方や作成方法を解説します。

さらに、各グラフの特徴や具体的な用途を詳しく紹介し、実際のコード例も紹介します。

データタイプ別のグラフの選び方

データには様々な種類がありますが、それらを適切なグラフで表現することが重要です。場面によって異なるかと思いますが、一般的には下記のような分け方で使い分けます。

データタイプ用途オススメのグラフ
カテゴリデータ比較、分布の確認棒グラフ、円グラフ
数値データ(単変量)分布や範囲の確認ヒストグラム、箱ひげ図
数値データ(多変量)関係性や傾向の確認散布図、バブルチャート
時系列データ時間的な変化の視覚化折れ線グラフ

主なグラフの種類と用途

それでは、様々なグラフを実際に見ていきます。Python例もつけているので、必要に応じて使用してみてください。

折れ線グラフ

  • データタイプ: 数値データ(時系列)
  • 用途: 時間的な変化を確認する際に適する。
  • : 売上推移、気温の変化。
import matplotlib.pyplot as plt
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
sales = [200, 220, 210, 240, 250]

plt.plot(months, sales, marker='o')
plt.title("月ごとの売上推移")
plt.xlabel("月")
plt.ylabel("売上 (万円)")
plt.show()

棒グラフ

  • データタイプ: カテゴリデータ
  • 用途: カテゴリ間の比較。
  • : 地域ごとの売上、商品別の利益。
import matplotlib.pyplot as plt
regions = ['北部', '東部', '南部', '西部']
revenue = [300, 400, 350, 450]

plt.bar(regions, revenue, color='skyblue')
plt.title("地域別売上")
plt.xlabel("地域")
plt.ylabel("売上 (万円)")
plt.show()

ヒストグラム

  • データタイプ: 数値データ(単変量)
  • 用途: データの分布を確認。
  • : テスト点数、収入の分布。
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(50, 10, 100)

plt.hist(data, bins=10, color='green', edgecolor='black')
plt.title("テストスコアの分布")
plt.xlabel("スコア")
plt.ylabel("頻度")
plt.show()

散布図

  • データタイプ: 数値データ(多変量)
  • 用途: 2つの変数間の相関を確認。
  • : 広告費と売上の関係。
import matplotlib.pyplot as plt
advertising = [5, 7, 8, 7, 6, 9, 10]
sales = [15, 21, 25, 19, 17, 24, 28]

plt.scatter(advertising, sales, color='purple')
plt.title("広告費と売上の相関")
plt.xlabel("広告費 (万円)")
plt.ylabel("売上 (万円)")
plt.show()

箱ひげ図

  • データタイプ: 数値データ(単変量)、数値データ(単変量)×カテゴリデータ
  • 用途: データの範囲、分布、外れ値を確認。
  • : サンプルの年収分布。

この箱ひげ図は年収(万円)の分布を示しています。

箱の上下は第1四分位数(約540万円)と第3四分位数(約610万円)で、箱の中の線は中央値(約580万円)です。

上下の「ひげ」は通常範囲内の最小値(約500万円)と最大値(約630万円)を表します。外れ値は表示されていません。この図から年収のばらつきや偏りを視覚的に把握できます。

最小値(約500万円):ひげの下端。データの中で最も小さい値(外れ値を除く)。

第1四分位数(Q1:約540万円):下位25%の境界。データを小さい順に並べたとき、下から25%の位置。

中央値(約580万円):全体の中央の値。データを半分に分けるライン。

第3四分位数(Q3:約610万円):上位25%の境界。全体の上から25%の位置。

最大値(約630万円):ひげの上端。データの中で最も大きい値(外れ値を除く)。

import matplotlib.pyplot as plt
income = [500, 550, 610, 580, 620, 630, 540, 520, 590]

plt.boxplot(income)
plt.title("年収の分布")
plt.ylabel("年収 (万円)")
plt.show()

円グラフ

  • データタイプ: カテゴリデータ
  • 用途: 各カテゴリの全体に対する割合。
  • : 市場シェア、アンケート結果。
import matplotlib.pyplot as plt
labels = ['A社', 'B社', 'C社', 'D社']
market_share = [35, 25, 20, 20]

plt.pie(market_share, labels=labels, autopct='%1.1f%%', startangle=90)
plt.title("市場シェア")
plt.show()

Matplotlibのカスタマイズ

Matplotlibでは、グラフを自分好みにカスタマイズすることで、視覚的な魅力や情報の伝わりやすさを向上させることができます。例えば、軸ラベルやタイトルのフォントサイズを変更したり、色やスタイルを調整して見やすくすることが可能です。

また、複数のデータを表示する際には、凡例を追加することでデータの意味を明確に伝えることができます。

# カスタマイズの例
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 35]

plt.plot(x, y, color='blue', marker='o', linestyle='--', label='データA') # マーカー、ラインのカスタム
plt.title("カスタマイズされたグラフ", fontsize=16) # タイトルの設定
plt.xlabel("X軸ラベル", fontsize=12) # X軸の設定
plt.ylabel("Y軸ラベル", fontsize=12) # Y軸の設定
plt.legend() # 凡例の設定
plt.grid(True) # グリッドの設定
plt.show()

まとめ

この記事では、PythonのMatplotlibを使ったグラフの作成方法と、データタイプに応じた適切なグラフの選び方を解説しました。グラフはデータを理解し、効果的に伝えるための重要なツールです。それぞれのグラフには適した用途があり、適切な場面で選んで使用することで、データ分析やレポート作成の精度が向上します。

Pythonではseabornplotlyなど、他のライブラリを用いてもグラフを作ることができるので、これらを学習するのもオススメです。

Matplotlibを用いたグラフ化を学ぶのにオススメの方法

書籍:Matplotlib&Seaborn実装ハンドブック

下記の書籍にMatplotlibやseabornの可視化処理がまとめられているので、実践的なコードの書き方を確認するのもオススメです。

スクール:現役データサイエンティストに教えてもらう

グラフ化は分析の際に必須です。難しいと感じる場合は、相談しながら進められるスクールもオススメです。

データサイエンティストになるためにオススメのスクール5選。
はじめに近年、多くの企業でデータ活用が進み、AIやデータ分析への期待がますます高まっています。そのため、データサイエンティストは現代のビジネス界で最も需要のある職業の一つです。データ分析、機械学習、統計学、プログラミングなど多岐に...

コメント

Copied title and URL