【0から学ぶAI】第217回:Matplotlibによるデータ可視化 〜グラフ作成の基本を解説

目次

前回のおさらいと今回のテーマ

こんにちは!前回は、Pandasを使ってCSV、Excel、JSONなどの様々なデータ形式の読み込みと保存について解説しました。データの入出力を効率的に行う方法を学んだことで、今後のデータ分析やAI開発がさらにスムーズに進められるようになりますね。

今回は、Pythonの代表的なデータ可視化ライブラリであるMatplotlibを使って、データの可視化方法を学びます。Matplotlibを使うと、折れ線グラフや棒グラフ、散布図など様々なグラフを簡単に作成でき、データの傾向やパターンを視覚的に理解することができます。それでは、基本的な操作方法を見ていきましょう!

Matplotlibとは?

Matplotlibは、Pythonでデータの可視化を行うためのライブラリです。シンプルで柔軟性が高く、基本的なグラフから高度なカスタマイズまで幅広く対応しています。特に以下の特徴があります。

  1. 多様なグラフの作成が可能: 折れ線グラフ、棒グラフ、散布図、ヒストグラム、円グラフなど様々なグラフを作成できる。
  2. カスタマイズ性が高い: ラベル、色、スタイル、レイアウトなどを細かく設定可能。
  3. Pandasとの連携: Pandasのデータフレームと組み合わせて簡単にグラフを描画できる。

Matplotlibのインストールと基本設定

Anaconda環境では、Matplotlibはデフォルトでインストールされていますが、手動でインストールする場合は以下のコマンドを使用します。

pip install matplotlib

Matplotlibのインポート

慣習として、Matplotlibのpyplotモジュールをpltというエイリアスでインポートします。

import matplotlib.pyplot as plt

これで準備が整いました。早速、グラフを作成してみましょう。

Matplotlibで基本的なグラフを作成する

1. 折れ線グラフの作成

折れ線グラフは、数値の変化を視覚的に示すのに適しています。例えば、時間と共に変化するデータの傾向を確認するのに使えます。

import matplotlib.pyplot as plt

# データの準備
x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 4, 9, 16, 25]

# 折れ線グラフの描画
plt.plot(x, y)
plt.title("Line Graph")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
  • plt.plot(): 折れ線グラフを描画する関数。
  • plt.title(): グラフのタイトルを設定。
  • plt.xlabel() / plt.ylabel(): X軸、Y軸のラベルを設定。
  • plt.show(): グラフを表示。

2. 棒グラフの作成

棒グラフは、カテゴリごとの値を比較する際に便利です。

# データの準備
categories = ['A', 'B', 'C', 'D', 'E']
values = [5, 7, 3, 8, 6]

# 棒グラフの描画
plt.bar(categories, values)
plt.title("Bar Chart")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()
  • plt.bar(): 棒グラフを描画する関数。カテゴリとその値を指定します。

3. 散布図の作成

散布図は、2つの変数の関係性を視覚化する際に使用されます。

import numpy as np

# データの準備
x = np.random.rand(50)
y = np.random.rand(50)

# 散布図の描画
plt.scatter(x, y)
plt.title("Scatter Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
  • plt.scatter(): 散布図を描画する関数。xyにそれぞれの変数のデータを指定します。

4. ヒストグラムの作成

ヒストグラムは、データの分布を視覚的に表現する際に有効です。

data = np.random.randn(1000)

# ヒストグラムの描画
plt.hist(data, bins=30)
plt.title("Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
  • plt.hist(): ヒストグラムを描画する関数。データとビンの数(区間の数)を指定します。

5. 円グラフの作成

円グラフは、全体に対する割合を視覚的に示す際に使用されます。

labels = ['Apples', 'Bananas', 'Cherries', 'Dates']
sizes = [15, 30, 45, 10]

# 円グラフの描画
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title("Pie Chart")
plt.show()
  • plt.pie(): 円グラフを描画する関数。labelsでラベル、autopctでパーセンテージ表示のフォーマットを指定します。

Matplotlibのカスタマイズ

1. グラフのスタイル設定

Matplotlibには、様々なスタイルが用意されており、plt.style.use()を使ってスタイルを変更できます。

plt.style.use('ggplot')  # スタイルを'ggplot'に設定

# 折れ線グラフの描画
plt.plot(x, y)
plt.title("Styled Line Graph")
plt.show()

ggplotスタイルの他にも、seabornclassicなど様々なスタイルがあります。

2. 色と線のスタイル

グラフの色や線のスタイルを指定することも可能です。

plt.plot(x, y, color='red', linestyle='--', marker='o')
plt.title("Customized Line Graph")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
  • color: 線の色(例:’red’, ‘blue’など)。
  • linestyle: 線のスタイル(例:--で破線、-で実線)。
  • marker: データポイントのマーカー(例:'o'で円)。

3. 複数のグラフを一つの図に表示

plt.subplot()を使うと、複数のグラフを一つの図にまとめて表示できます。

# 1行2列のグラフ配置
plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title("Line Graph")

plt.subplot(1, 2, 2)
plt.bar(categories, values)
plt.title("Bar Chart")

plt.tight_layout()
plt.show()
  • plt.subplot(): 行数、列数、グラフ番号を指定してサブプロットを作成します。
  • plt.tight_layout(): レイアウトを自動的に調整し、重なりを防ぐ。

PandasデータフレームとMatplotlibの連携

PandasのデータフレームとMatplotlibを連携させることで、データフレームから直接グラフを描画することができます。

import pandas as pd

# サンプルデータの作成
data = {
    'Category': ['A', 'B', 'C', 'D'],
    'Values': [10, 20, 15, 5]
}
df = pd.DataFrame(data)

# 棒グラフの描画
df.plot(kind='bar', x='Category', y='Values')
plt.title("Pandas Bar Chart")
plt.show()
  • df.plot(): Pandasのメソッドを使って直接グラフを作成します。
  • kind: グラフの種類を指定(例:bar, line, histなど)。

まとめ

今回は、Matplotlibを使った基本的なグラフの作成方法について解説しました。折れ線グラ

フ、棒グラフ、散布図、ヒストグラム、円グラフなど、データの可視化に必要なスキルを身につけましたね。Matplotlibを使いこなすことで、データの傾向を視覚的に捉え、分析結果をわかりやすく伝えることができるようになります。

次回予告

次回は、Seabornを使って、より高度で美しいグラフを作成する方法を学びます。SeabornはMatplotlibの機能を拡張し、簡単に視覚的に優れたグラフを作成できるライブラリです。次回もお楽しみに!


注釈

  • Pandasとの連携: Pandasのデータフレームから直接グラフを描画できる機能で、効率的に可視化が可能。
  • スタイル設定: plt.style.use()を使ってグラフのデザインを簡単に変更可能。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社PROMPTは生成AIに関する様々な情報を発信しています。
記事にしてほしいテーマや調べてほしいテーマがあればお問合せフォームからご連絡ください。
---
PROMPT Inc. provides a variety of information related to generative AI.
If there is a topic you would like us to write an article about or research, please contact us using the inquiry form.

コメント

コメントする

目次