Step 35:Matplotlibで最初のグラフを描こう

📈 ステップ35: Matplotlibで最初のグラフを描こう

データを視覚化して、わかりやすく伝えよう!

ステップ34でPandasの総復習を行いました。今回からはデータ可視化を学びます。まずは最も基本的なグラフライブラリMatplotlibを使って、折れ線グラフを描いてみましょう。

📖 このステップで学ぶこと

・Matplotlibのインポート

・折れ線グラフの作成

・plt.plot()の基本

・グラフの表示と保存

🎯 1. なぜグラフが必要なのか?

データを数字の表で見るよりも、グラフで見る方がずっとわかりやすいです。

🔰 数字だけだと…

例:月別売上データ

1月: 120万円
2月: 135万円
3月: 128万円
4月: 142万円
5月: 155万円
6月: 148万円

💡 数字だけだとわかりにくいこと

・全体的に増えているのか、減っているのか

・どの月が一番良かったのか

・急激な変化があったのか

これらはグラフにすると一目でわかります!

📊 グラフの利点

📌 グラフを使うメリット

一目で傾向がわかる:増えているか、減っているか

比較しやすい:どちらが大きいか

異常値に気づく:変な値がすぐわかる

相手に伝わりやすい:プレゼンテーションに最適

📚 2. Matplotlibとは?

Matplotlib(マットプロットリブ)は、Pythonで最も使われているグラフ描画ライブラリです。

🔰 Matplotlibのインポート

コード:Matplotlibのインポート

# Matplotlibのインポート
import matplotlib.pyplot as plt

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 コードの解説

import matplotlib.pyplot as plt

 ・matplotlib:ライブラリの名前

 ・pyplot:グラフを描く機能を持つモジュール

 ・as plt:「plt」という短い名前で使えるようにする

なぜ「plt」という名前?

 ・毎回「matplotlib.pyplot」と書くのは大変

 ・「plt」という短い名前が世界中で使われている慣習

 ・ネットの情報やサンプルコードも「plt」を使っている

📌 Google Colabでの使い方

Google ColabではMatplotlibは最初からインストールされています

インポートするだけですぐに使えます。

ローカル環境の場合は、事前に以下のコマンドでインストールが必要です:

pip install matplotlib

📈 3. 最初のグラフを描く

🔰 シンプルな折れ線グラフ

まずは最もシンプルなグラフを描いてみましょう。

コード:最初のグラフ

import matplotlib.pyplot as plt

# データを準備
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# グラフを描く
plt.plot(x, y)

# グラフを表示
plt.show()

print("グラフが表示されました!")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 コードの解説(1行ずつ)

x = [1, 2, 3, 4, 5]

 ・x軸(横軸)のデータをリストで準備します

 ・グラフの横方向の位置を決めます

y = [2, 4, 6, 8, 10]

 ・y軸(縦軸)のデータをリストで準備します

 ・グラフの縦方向の位置(高さ)を決めます

plt.plot(x, y)

 ・x軸とy軸のデータを使って折れ線グラフを描きます

 ・この時点ではまだ表示されません(描画の準備だけ)

plt.show()

 ・準備したグラフを画面に表示します

 ・これを忘れるとグラフが表示されません!

実行結果

右上がりの直線グラフが表示されます:

・x軸:1, 2, 3, 4, 5

・y軸:2, 4, 6, 8, 10

・点(1,2)、(2,4)、(3,6)、(4,8)、(5,10)を結んだ線

📌 グラフ描画の基本3ステップ

ステップ コード 説明
1 データを準備 リストや配列でx軸・y軸のデータを用意
2 plt.plot(x, y) グラフを描く(まだ表示されない)
3 plt.show() グラフを表示する

📝 実データでグラフを描く

次は、もっと実践的なデータでグラフを描いてみましょう。

コード:月別売上グラフ

import matplotlib.pyplot as plt

# 月別の売上データ
months = ['1月', '2月', '3月', '4月', '5月', '6月']
sales = [120, 135, 128, 142, 155, 148]

# グラフを描く
plt.plot(months, sales)

# グラフを表示
plt.show()

print("月別売上グラフを表示しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 ポイント

・x軸には文字列(月の名前)も使えます

・Matplotlibが自動的に適切な位置に配置してくれます

・ただし、日本語は文字化けすることがあります(後のステップで対策を学びます)

📘 Pandasのデータからグラフを描く

Pandasで作ったDataFrameから直接グラフを描くこともできます。

コード:DataFrameからグラフを作成

import pandas as pd
import matplotlib.pyplot as plt

# DataFrameを作成
df = pd.DataFrame({
    '月': ['1月', '2月', '3月', '4月', '5月'],
    '売上': [100, 120, 115, 135, 140]
})

print("データ:")
print(df)

# DataFrameの列を使ってグラフを描く
plt.plot(df['月'], df['売上'])

# グラフを表示
plt.show()

print("\nPandasのデータからグラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 DataFrameからグラフを描くポイント

plt.plot(df[‘月’], df[‘売上’])

 ・df[‘月’]:DataFrameの「月」列をx軸に使用

 ・df[‘売上’]:DataFrameの「売上」列をy軸に使用

 ・列を指定するだけで、グラフが描けます

実行結果

データ:
    月   売上
0  1月  100
1  2月  120
2  3月  115
3  4月  135
4  5月  140

Pandasのデータからグラフを作成しました

🎨 4. グラフをカスタマイズする

📝 複数の線を描く

1つのグラフに複数のデータを表示して比較できます。

コード:2本の線を描く

import matplotlib.pyplot as plt

# データ
months = ['1月', '2月', '3月', '4月', '5月']
tokyo = [120, 135, 128, 142, 155]
osaka = [110, 125, 120, 130, 145]

# 2本の線を描く
plt.plot(months, tokyo)
plt.plot(months, osaka)

# グラフを表示
plt.show()

print("東京と大阪の売上を比較しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 複数線のポイント

plt.plot()を複数回呼ぶだけ

 ・1回目のplt.plot()で1本目の線

 ・2回目のplt.plot()で2本目の線

 ・色は自動的に変わります(青、オレンジ、緑…)

 ・plt.show()は最後に1回だけ

📝 マーカーを付ける

データポイントにマーカー(印)を付けると、より見やすくなります。

コード:マーカー付きグラフ

import matplotlib.pyplot as plt

# データ
days = [1, 2, 3, 4, 5, 6, 7]
temperature = [18, 20, 19, 22, 24, 23, 21]

# マーカー付きで描く
plt.plot(days, temperature, marker='o')

# グラフを表示
plt.show()

print("気温のグラフにマーカーを付けました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 マーカーの指定方法

plt.plot(x, y, marker=’o’)

 ・marker=’o’で各データポイントに丸いマーカーが付きます

 ・線とマーカーの両方が表示されます

📌 よく使うマーカー

記号
‘o’ 丸(●) marker=’o’
‘s’ 四角(■) marker=’s’
‘^’ 三角(▲) marker=’^’
‘*’ 星(★) marker=’*’
‘+’ プラス(+) marker=’+’
‘x’ バツ(×) marker=’x’

📝 線のスタイルを変える

コード:異なる線スタイル

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
y3 = [1, 3, 6, 10, 15]

# 異なるスタイルで3本の線
plt.plot(x, y1, linestyle='-')   # 実線
plt.plot(x, y2, linestyle='--')  # 破線
plt.plot(x, y3, linestyle=':')   # 点線

# グラフを表示
plt.show()

print("3種類の線スタイルを使いました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

📌 線のスタイル一覧

記号 スタイル
‘-‘ 実線 ───── linestyle=’-‘
‘–‘ 破線 ─ ─ ─ linestyle=’–‘
‘:’ 点線 ・・・・・ linestyle=’:’
‘-.’ 一点鎖線 ─・─・ linestyle=’-.’

📊 5. グラフの基本設定

📝 図のサイズを変える

デフォルトのグラフサイズが小さい場合は、大きくできます。

コード:図のサイズを指定

import matplotlib.pyplot as plt

months = ['1月', '2月', '3月', '4月', '5月']
sales = [100, 120, 115, 135, 140]

# 図のサイズを指定(幅10インチ、高さ6インチ)
plt.figure(figsize=(10, 6))

# グラフを描く
plt.plot(months, sales)

# グラフを表示
plt.show()

print("大きなグラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 figsize の使い方

plt.figure(figsize=(幅, 高さ))

 ・単位は「インチ」です

 ・(10, 6)は横10インチ×縦6インチ

 ・plt.plot()の前に書く必要があります

おすすめのサイズ:

 ・(10, 6):標準的なサイズ

 ・(12, 8):大きめ(発表用)

 ・(8, 4):小さめ(ドキュメント埋め込み用)

📝 グリッド(格子線)を表示

グリッドを表示すると、値が読み取りやすくなります。

コード:グリッド付きグラフ

import matplotlib.pyplot as plt

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

# グラフを描く
plt.plot(x, y, marker='o')

# グリッドを表示
plt.grid(True)

# グラフを表示
plt.show()

print("グリッド付きのグラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 グリッドの使い方

plt.grid(True)

 ・グリッド(格子線)を表示します

 ・値を正確に読み取りやすくなります

plt.grid(True, alpha=0.3)

 ・alphaで線の透明度を指定できます

 ・0.3にすると薄いグリッドになります

📝 軸の範囲を指定

x軸やy軸の表示範囲を自分で指定できます。

コード:軸の範囲を指定

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 22]

# グラフを描く
plt.plot(x, y)

# x軸の範囲を0〜6に
plt.xlim(0, 6)

# y軸の範囲を0〜30に
plt.ylim(0, 30)

# グラフを表示
plt.show()

print("軸の範囲を指定しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 軸範囲の指定

plt.xlim(最小値, 最大値)

 ・x軸の表示範囲を指定

plt.ylim(最小値, 最大値)

 ・y軸の表示範囲を指定

なぜ範囲を指定する?

 ・y軸を0から始めたい場合

 ・余白を追加したい場合

 ・複数のグラフを同じスケールで比較したい場合

📊 6. 実践例

📘 例1:売上推移グラフ

コード:商品別売上推移

import matplotlib.pyplot as plt

# データ
months = ['1月', '2月', '3月', '4月', '5月', '6月']
product_a = [120, 135, 128, 142, 155, 148]
product_b = [100, 115, 125, 118, 130, 135]

# 図のサイズ設定
plt.figure(figsize=(10, 6))

# 2つの商品の売上を描く(異なるマーカー)
plt.plot(months, product_a, marker='o', linestyle='-')
plt.plot(months, product_b, marker='s', linestyle='--')

# グリッド表示(薄め)
plt.grid(True, alpha=0.3)

# グラフを表示
plt.show()

print("商品別売上推移グラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 このグラフのポイント

2つの商品を比較できる

異なるマーカーで区別しやすい(丸と四角)

異なる線スタイルでも区別(実線と破線)

薄いグリッドで値が読み取りやすい

📘 例2:気温の変化

コード:週間気温グラフ

import matplotlib.pyplot as plt

# 1週間の気温データ
days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
temperature = [18, 20, 22, 21, 23, 25, 24]

# 図のサイズ設定
plt.figure(figsize=(8, 5))

# 赤い線で気温を描く
plt.plot(days, temperature, 
         color='red',      # 線の色を赤に
         marker='o',       # 丸いマーカー
         linewidth=2)      # 線の太さを2に

# グリッド表示
plt.grid(True, alpha=0.3)

# グラフを表示
plt.show()

print("週間気温グラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

💡 新しいオプション

color=’red’

 ・線の色を赤に指定

 ・’blue’, ‘green’, ‘orange’なども使えます

linewidth=2

 ・線の太さを2ポイントに指定

 ・デフォルトは1.5程度

📘 例3:3都市の比較

コード:3都市の四半期別売上

import matplotlib.pyplot as plt

# データ
quarters = ['Q1', 'Q2', 'Q3', 'Q4']
tokyo = [150, 165, 180, 195]
osaka = [130, 145, 155, 170]
nagoya = [110, 120, 135, 145]

# 図のサイズ設定
plt.figure(figsize=(10, 6))

# 3都市のデータを描く(異なるマーカー)
plt.plot(quarters, tokyo, marker='o', linewidth=2)
plt.plot(quarters, osaka, marker='s', linewidth=2)
plt.plot(quarters, nagoya, marker='^', linewidth=2)

# グリッド表示
plt.grid(True, alpha=0.3)

# y軸の範囲を調整(0から始める)
plt.ylim(0, 220)

# グラフを表示
plt.show()

print("3都市の四半期別売上を比較しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

📝 練習問題

ここまで学んだことを、実際に手を動かして確認しましょう。

問題1:シンプルなグラフ(初級)

📋 問題

以下のデータで折れ線グラフを描いてください。

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

※ 画面が小さい場合は、コードブロックを横にスクロールできます

解答例を見る

コード

import matplotlib.pyplot as plt

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

plt.plot(x, y)
plt.show()

print("グラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

問題2:マーカー付きグラフ(初級)

📋 問題

問題1のグラフに丸いマーカーを付けてください。

解答例を見る

コード

import matplotlib.pyplot as plt

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

plt.plot(x, y, marker='o')
plt.show()

print("マーカー付きグラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

問題3:2本の線グラフ(中級)

📋 問題

以下の2つのデータを1つのグラフに描いてください。

months = ['1月', '2月', '3月', '4月', '5月']
sales_a = [100, 120, 110, 130, 125]
sales_b = [90, 100, 115, 108, 120]

※ 画面が小さい場合は、コードブロックを横にスクロールできます

解答例を見る

コード

import matplotlib.pyplot as plt

months = ['1月', '2月', '3月', '4月', '5月']
sales_a = [100, 120, 110, 130, 125]
sales_b = [90, 100, 115, 108, 120]

plt.plot(months, sales_a, marker='o')
plt.plot(months, sales_b, marker='s')

plt.show()

print("2本の線グラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

問題4:グリッド付きグラフ(中級)

📋 問題

問題3のグラフにグリッドを追加してください。

解答例を見る

コード

import matplotlib.pyplot as plt

months = ['1月', '2月', '3月', '4月', '5月']
sales_a = [100, 120, 110, 130, 125]
sales_b = [90, 100, 115, 108, 120]

plt.plot(months, sales_a, marker='o')
plt.plot(months, sales_b, marker='s')

plt.grid(True)
plt.show()

print("グリッド付きグラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

問題5:カスタマイズグラフ(上級)

📋 問題

以下の仕様でグラフを作成してください:

・図のサイズ:10×6

・3本の線(東京、大阪、名古屋)

・各線に異なるマーカー

・グリッド表示(薄め:alpha=0.3)

months = ['4月', '5月', '6月', '7月', '8月']
tokyo = [120, 135, 145, 150, 160]
osaka = [100, 115, 120, 125, 135]
nagoya = [80, 90, 95, 100, 110]

※ 画面が小さい場合は、コードブロックを横にスクロールできます

解答例を見る

コード

import matplotlib.pyplot as plt

months = ['4月', '5月', '6月', '7月', '8月']
tokyo = [120, 135, 145, 150, 160]
osaka = [100, 115, 120, 125, 135]
nagoya = [80, 90, 95, 100, 110]

# 図のサイズ設定
plt.figure(figsize=(10, 6))

# 3本の線を描く
plt.plot(months, tokyo, marker='o', linewidth=2)
plt.plot(months, osaka, marker='s', linewidth=2)
plt.plot(months, nagoya, marker='^', linewidth=2)

# グリッド表示(薄め)
plt.grid(True, alpha=0.3)

plt.show()

print("3都市の売上推移グラフを作成しました")

※ 画面が小さい場合は、コードブロックを横にスクロールできます

🎯 このステップのまとめ

✅ 学んだこと

import matplotlib.pyplot as pltでインポート

plt.plot(x, y)で折れ線グラフを描ける

plt.show()でグラフを表示

markerでデータポイントに印を付けられる

linestyleで線のスタイルを変えられる

plt.figure(figsize=(幅, 高さ))で図のサイズを変えられる

plt.grid(True)でグリッドを表示できる

💡 次のステップに進む前に確認

以下のことができるようになったか確認しましょう:

□ 基本的な折れ線グラフを描ける

□ 複数の線を1つのグラフに描ける

□ マーカーを付けられる

□ グリッドを表示できる

□ 図のサイズを変更できる

これらができたら、次のステップに進みましょう!

❓ よくある質問

Q1: plt.show()を忘れるとどうなりますか?

A: Jupyter NotebookやGoogle Colabでは表示されることもありますが、通常のPythonスクリプトではグラフが表示されません

必ずplt.show()を書きましょう。

Q2: グラフが小さくて見にくいです

A: plt.figure(figsize=(10, 6))で図のサイズを大きくできます。

数字を変えて調整しましょう。

Q3: 線の色を変えたいです

A: plt.plot(x, y, color='red')のように指定します。

‘blue’, ‘green’, ‘red’, ‘orange’などが使えます。次のステップで詳しく学びます。

Q4: グラフにタイトルを付けたいです

A: 次のステップ(ステップ36)で詳しく学びます。

plt.title()を使います。

Q5: 日本語が文字化けします

A: Matplotlibはデフォルトで日本語に対応していません。

後のステップで日本語対応の方法を学びます。

📝

学習メモ

Pythonデータ分析入門 - Step 35

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE