データ可視化もラクラク! matplotlib + pandasでかんたんグラフ作成ガイド

※本サイトにはプロモーション・広告が含まれています。

(最終更新月: 2024年11月)

✔こんな方におすすめの記事です

「Pythonでデータをグラフ化したいけど、方法がわからない」
「matplotlibとpandasの使い方を基礎から学びたい」
「データ分析結果を見やすく可視化したい」

✔当記事を通じて得られること

  • matplotlibとpandasの基本的な使い方
  • データフレームからグラフを作成する具体的な手順
  • 実務で使える実践的なグラフ作成テクニック

当記事では、データの読み込みから可視化までの基本的な流れから、グラフのカスタマイズまで、実例を交えて幅広く解説していきます。
ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

matplotlibとpandasの基礎知識

matplotlibとpandasは、Pythonでデータ分析を行う際の必須ライブラリです。
これらを組み合わせることで、効率的にデータを可視化できます。

  • ライブラリの概要と特徴
  • インストール方法
  • 基本的な使い方

ライブラリの概要と特徴

matplotlibは、Pythonで最も広く使われているグラフ作成ライブラリです。
豊富な機能と高度なカスタマイズ性を備えているため、様々な場面で活用できます。
以下は主な特徴です。

  • 折れ線グラフ、棒グラフ、散布図など、多様なグラフタイプに対応
  • グラフの色、スタイル、ラベルなど、細かい設定が可能
  • 複数のグラフを一つの画面に配置できる

インストール方法

matplotlibとpandasのインストールは、pipコマンドで簡単に行えます。
ターミナルやコマンドプロンプトで以下のコマンドを実行してください。

pip install matplotlib pandas

インストールが完了したら、Pythonで以下のようにインポートします。

import matplotlib.pyplot as plt
import pandas as pd

基本的な使い方

matplotlibとpandasの基本的な使い方を見ていきましょう。
まずは、簡単なデータフレームを作成し、グラフ化してみます。

# サンプルデータの作成
data = {
    '月': ['1月', '2月', '3月', '4月', '5月'],
    '売上': [100, 150, 200, 180, 220]
}
df = pd.DataFrame(data)

# 折れ線グラフの作成
plt.plot(df['月'], df['売上'])
plt.title('月別売上推移')
plt.xlabel('月')
plt.ylabel('売上(万円)')
plt.show()

データの読み込みと前処理

データ可視化の第一歩は、適切なデータの読み込みと整形にあります。
pandasを使えば、様々な形式のデータを簡単に扱えます。

  • CSVファイルの読み込み
  • データの整形と確認
  • 欠損値の処理

CSVファイルの読み込み

pandasでは、read_csv()関数を使ってCSVファイルを読み込みます。
以下のコードで、データフレームとしてCSVファイルを取り込めます。

# CSVファイルの読み込み
df = pd.read_csv('sales_data.csv')

# データの先頭5行を確認
print(df.head())

データの整形と確認

読み込んだデータは、必要に応じて整形する必要があります。
pandasには、データを簡単に操作するための豊富な機能が用意されています。

# 特定の列の抽出
selected_df = df[['日付', '売上', '利益']]

# 日付列を日付型に変換
selected_df['日付'] = pd.to_datetime(selected_df['日付'])

# データの基本統計量を確認
print(selected_df.describe())

欠損値の処理

実際のデータには、欠損値が含まれていることがあります。
適切な処理を行わないと、グラフ化の際に問題が発生する可能性があります。

# 欠損値の確認
print(df.isnull().sum())

# 欠損値の補完(平均値で埋める場合)
df['売上'] = df['売上'].fillna(df['売上'].mean())

基本的なグラフの作成方法

matplotlibを使って、様々な種類のグラフを作成できます。
目的に応じて適切なグラフタイプを選択することが重要です。

  • 折れ線グラフの作成
  • 棒グラフの作成
  • 散布図の作成

折れ線グラフの作成

時系列データの推移を表現するのに適している折れ線グラフを作成してみましょう。
以下のコードで、基本的な折れ線グラフが作成できます。

plt.figure(figsize=(10, 6))
plt.plot(df['日付'], df['売上'], marker='o')
plt.title('売上推移')
plt.xlabel('日付')
plt.ylabel('売上(万円)')
plt.grid(True)
plt.show()

棒グラフの作成

カテゴリごとの比較に適している棒グラフを作成する方法を見ていきます。
横棒グラフと縦棒グラフ、両方の作成方法を紹介します。

# 縦棒グラフ
plt.figure(figsize=(10, 6))
plt.bar(df['商品'], df['売上'])
plt.title('商品別売上')
plt.xlabel('商品名')
plt.ylabel('売上(万円)')
plt.xticks(rotation=45)
plt.show()

# 横棒グラフ
plt.figure(figsize=(10, 6))
plt.barh(df['商品'], df['売上'])
plt.title('商品別売上')
plt.xlabel('売上(万円)')
plt.ylabel('商品名')
plt.show()

散布図の作成

2つの変数間の関係を可視化するのに適している散布図を作成してみましょう。
相関関係の分析に役立ちます。

plt.figure(figsize=(10, 6))
plt.scatter(df['売上'], df['利益'])
plt.title('売上と利益の関係')
plt.xlabel('売上(万円)')
plt.ylabel('利益(万円)')
plt.grid(True)
plt.show()

グラフのカスタマイズ

基本的なグラフに加えて、見た目を改善するためのカスタマイズ方法を学びます。
適切なカスタマイズにより、より見やすく、情報を伝えやすいグラフになります。

  • 色とスタイルの設定
  • 軸の設定
  • 凡例の追加

色とスタイルの設定

グラフの色やスタイルを変更することで、視認性を向上させることができます。
matplotlibには、多様な色やスタイルのオプションが用意されています。

plt.figure(figsize=(10, 6))
plt.plot(df['日付'], df['売上'], color='#FF6B6B', linestyle='--', linewidth=2, marker='o')
plt.plot(df['日付'], df['利益'], color='#4ECDC4', linestyle='-', linewidth=2, marker='s')
plt.title('売上・利益推移', fontsize=14)
plt.grid(True, linestyle=':')
plt.show()

軸の設定

グラフの軸の設定を変更することで、データをより見やすく表現できます。
目盛りの間隔や表示形式を調整する方法を紹介します。

plt.figure(figsize=(10, 6))
plt.plot(df['日付'], df['売上'])

# x軸の設定
plt.xticks(rotation=45)
plt.xlabel('日付', fontsize=12)

# y軸の設定
plt.ylabel('売上(万円)', fontsize=12)
plt.ylim(bottom=0)  # y軸の最小値を0に設定
plt.grid(True)

plt.show()

凡例の追加

複数のデータを一つのグラフに表示する場合、凡例は必須です。
わかりやすい凡例の追加方法を見ていきましょう。

plt.figure(figsize=(10, 6))
plt.plot(df['日付'], df['売上'], label='売上')
plt.plot(df['日付'], df['利益'], label='利益')

# 凡例の追加
plt.legend(loc='upper right', frameon=True, shadow=True)
plt.title('売上・利益推移')
plt.show()

複数グラフの配置

1つの図に複数のグラフを配置する方法を学びます。
データの比較や関連性を示すのに効果的です。

  • サブプロットの作成
  • グラフの配置方法
  • グラフサイズの調整

サブプロットの作成

plt.subplots()を使用して、複数のグラフを配置できます。
行数と列数を指定して、グラフを整理して表示しましょう。

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5))

# 左側のグラフ
ax1.plot(df['日付'], df['売上'])
ax1.set_title('売上推移')

# 右側のグラフ
ax2.scatter(df['売上'], df['利益'])
ax2.set_title('売上と利益の散布図')

plt.tight_layout()
plt.show()

グラフの配置方法

グラフの配置は、様々なレイアウトが可能です。
gridspecを使用して、より柔軟な配置を実現できます。

import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(12, 8))
gs = gridspec.GridSpec(2, 2)

ax1 = fig.add_subplot(gs[0, :])  # 1行目全体
ax2 = fig.add_subplot(gs[1, 0])  # 2行目左
ax3 = fig.add_subplot(gs[1, 1])  # 2行目右

ax1.plot(df['日付'], df['売上'])
ax2.bar(df['商品'][:5], df['売上'][:5])
ax3.scatter(df['売上'], df['利益'])

plt.tight_layout()
plt.show()

グラフサイズの調整

グラフのサイズや余白を適切に調整することで、見やすさが向上します。
以下のコードで、様々な調整が可能です。

# グラフサイズと余白の調整
plt.figure(figsize=(12, 6))
plt.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)

plt.plot(df['日付'], df['売上'])
plt.title('売上推移')

# グラフの保存
plt.savefig('sales_graph.png', dpi=300, bbox_inches='tight')
plt.show()

まとめ

当記事では、matplotlibとpandasを使用したデータ可視化について学習してきました。

  • 基本的なライブラリの使い方とデータの読み込み方法
  • 様々なグラフの作成方法とカスタマイズ技術
  • 実務で使える複数グラフの配置とレイアウト調整

これらの知識を活用することで、データをより効果的に可視化できるようになります。
まずは簡単なグラフから始めて、徐々にカスタマイズを加えていくことをおすすめします。
継続的な練習を通じて、より魅力的なデータビジュアライゼーションのスキルを身につけていきましょう。

タイトルとURLをコピーしました