CodeGym /コース /Python SELF JA /グラフのキャプション、凡例、軸を設定して視覚的に理解しやすくする

グラフのキャプション、凡例、軸を設定して視覚的に理解しやすくする

Python SELF JA
レベル 42 , レッスン 0
使用可能

1. グラフ注釈の重要性

グラフにキャプション、凡例、注釈を追加する理由

今日はデータの視覚化について、グラフそのものと同じくらい重要な注釈の話をするよ。注釈はテレビのリモコンみたいなもの。リモコンがなかったら、一見全部揃っているように見えても操作が面倒だし、使い勝手が悪いよね。同様に、グラフもキャプションや凡例、注釈がないとデータがうまく伝わらないことがある。

「本当にキャプションや凡例がそんなに重要なの?」って思うかもしれないけど、答えは簡単!彼らはグラフにとっての塩やコショウみたいな存在。これがないとグラフが読みにくくなって、データの意味が曖昧になっちゃうんだよね。注釈を使うことで、グラフに付加的な意味を与え、より直感的に理解できるようにするんだ。

キャプションや凡例は視聴者が何を見ているのかすぐに理解するのに役立つよ。例えば、指示のない宝の地図を見せられて、いきなり宝の場所を見つけてって言われたら混乱するよね?凡例なしのグラフを見るのもこれと同じ状況。視聴者を助けるべきで、混乱させちゃダメなんだ。

それじゃあ、キャプションや注釈をPythonとMatplotlibを使ってグラフに加える方法を詳しく見ていこうか。準備はいい?始めるよ!

2. 軸のキャプション

xlabel, ylabel, titleを使った軸キャプションの管理

まずは軸に名前をつけよう。手順は簡単で、xlabel()ylabel()を使ってX軸とY軸にキャプションを追加するよ。グラフのタイトルにはtitle()を使うんだ。これらを使うとグラフがわかりやすく整理されるよ。簡単な例を見てみよう:

Python

import matplotlib.pyplot as plt

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

# グラフを作成
plt.plot(x, y, color='blue')

# キャプションを追加
plt.xlabel('時間(時間)', color='red')
plt.ylabel('距離(km)', color='green')
plt.title('時間に伴う距離の増加', color='gold')

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

テキストやグラフを好きな色に変えられるのも面白いね:

キャプションのフォントやサイズの設定

グラフをもっと見やすくするために、キャプションのサイズや色、フォントスタイルを変更できるよ。Matplotlibではfontsize, fontweight, colorなどのパラメータで設定できるんだ。

Python

import matplotlib.pyplot as plt

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

plt.plot(x, y)

# パラメータ付きのタイトルとキャプションの設定
plt.title("グラフの例", fontsize=16, fontweight="bold", color="navy")
plt.xlabel("Xの値", fontsize=12, color="darkred")
plt.ylabel("Yの値", fontsize=12, color="darkred")

plt.show()

この例では:

  • fontsizeはフォントサイズを設定。
  • fontweight="bold"はテキストを太字に。
  • colorはテキストの色を変更。

3. "凡例"の表示

legend()を使った凡例の追加と設定

凡例はグラフツールの中で欠かせない!線や棒が何を示しているのかを説明してくれて、複数のデータシリーズも簡単に区別できるよ。Matplotlibはこれを超簡単にしてくれる。例を見てみよう:

Python

# データ
x = [0, 1, 2, 3, 4, 5]
y1 = [0, 1, 4, 9, 16, 25]
y2 = [0, 1, 2, 3, 4, 5]

# グラフを作成
plt.plot(x, y1, label='数の平方')
plt.plot(x, y2, label='数自体')

# キャプションを追加
plt.xlabel('時間(時間)')
plt.ylabel('距離(km)')
plt.title('関数の比較')

# 凡例を追加
plt.legend(loc='upper left')

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

legend()を呼び出すと、指定した場所に凡例が追加されるよ。loc引数に'best'を指定するとPythonが自動的に最適な位置を選んでくれるよ(ここにもAIが登場!)。

凡例の位置指定

locパラメータを使って凡例の位置を変更できるよ。例えば:

  • loc="upper right" — 右上(デフォルト)。
  • loc="upper left" — 左上。
  • loc="lower right" — 右下。
  • loc="center" — 中央。
Python

plt.legend(loc="upper left")

凡例のサイズや色のカスタマイズ

fontsize, facecolor, edgecolorパラメータで凡例のフォントサイズや色をカスタマイズできるよ。

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [10, 15, 20, 25, 30]
y2 = [5, 10, 15, 20, 25]

plt.plot(x, y1, label="ライン 1", color="blue")
plt.plot(x, y2, label="ライン 2", color="green")

plt.title("カスタマイズされた凡例のグラフ")
plt.xlabel("Xの値")
plt.ylabel("Yの値")

# 凡例をカスタマイズ
plt.legend(loc="upper left", fontsize=10, facecolor="lightgray", edgecolor="black")

plt.show()

4. 軸のフォーマット

Matplotlibを使うと、スケールや目盛り、軸の範囲を設定できるよ。これでグラフの見やすさを向上させることができるんだ。

軸の範囲を変更する

xlim()ylim()関数を使うと、軸の最小値と最大値を設定できるよ。

Python

import matplotlib.pyplot as plt

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

plt.plot(x, y)
plt.xlabel("Xの値")
plt.ylabel("Yの値")
plt.xlim(0, 6)  # X軸の範囲を0から6に設定
plt.ylim(5, 35)  # Y軸の範囲を5から35に設定

plt.show()

目盛りの間隔を設定

xticks()yticks()関数を使って、カスタム目盛りを設定できるよ。

Python

import matplotlib.pyplot as plt

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

plt.plot(x, y)
plt.xlabel("Xの値")
plt.ylabel("Yの値")

# X軸の目盛りをカスタマイズ
plt.xticks([1, 2, 3, 4, 5], ["いち", "に", "さん", "し", "ご"])
plt.show()

グラフにグリッドを追加

グリッドは、データが多い場合や複数の値があるときに、値の位置を把握するのに便利だよ。

Python

import matplotlib.pyplot as plt

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

plt.plot(x, y)
plt.xlabel("Xの値")
plt.ylabel("Yの値")
plt.grid(True)  # グリッドを追加

plt.show()

plt.grid(True)を使うと、標準的なグリッドが追加されるよ。さらにcolor, linestyle, linewidthを使ってスタイルを変更することもできるんだ。

Python

plt.grid(color="gray", linestyle="--", linewidth=0.5)

5. グラフに注釈を追加

注釈を使えば、重要なポイントやグラフの説明を目立たせられるよ。annotate()メソッドを使って、特定のグラフポイントにテキストを加えられる。

注釈を追加

Python

import matplotlib.pyplot as plt

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

plt.plot(x, y)
plt.xlabel("Xの値")
plt.ylabel("Yの値")

# 注釈を追加
plt.annotate("最大値", xy=(5, 30), xytext=(3, 30),
             arrowprops=dict(facecolor="black", shrink=0.05))

plt.show()

この例では:

  • xy=(5, 30)は注釈を付けるポイントの座標。
  • xytext=(3, 30)はテキストの位置。
  • arrowpropsがポイントを指す矢印を追加。

6. グラフの改善例

さあ、練習してみよう!注釈を追加することでグラフがどれだけ改善されるかを見てみよう。

たとえば、あるグラフが月別に2つの商品売上の成長を示しているとしよう。それをもっと分かりやすくして必要な注釈を追加するよ。

Python

import matplotlib.pyplot as plt

# 月と売上
months = ['1月', '2月', '3月', '4月', '5月', '6月']
sales_product1 = [100, 120, 130, 150, 170, 190]
sales_product2 = [90, 110, 115, 140, 165, 180]

# グラフを作成
plt.plot(months, sales_product1, marker='o', label='商品1')
plt.plot(months, sales_product2, marker='s', label='商品2')

# 注釈を追加
plt.xlabel('月')
plt.ylabel('売上(個数)')
plt.title('商品の売上成長')
plt.legend(loc='upper left')

# 注釈設定
for i, txt in enumerate(sales_product1):
    plt.annotate(txt, (months[i], sales_product1[i]), textcoords="offset points", xytext=(0,10), ha='center')

for i, txt in enumerate(sales_product2):
    plt.annotate(txt, (months[i], sales_product2[i]), textcoords="offset points", xytext=(0,10), ha='center')

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

見て、小さな明るい数字が各データポイントの上に追加されたよ!大量のデータやポイントが含まれるグラフでは、こうした注釈が分析にとって大いに助けになるんだ。

さて、Matplotlibでの注釈の使い方を完全にマスターしたみたいだね。このスキルはレポート作成やデータのプレゼンテーションに役立つよ。特に、言葉ひとつひとつが千の数字に勝るところでね。それじゃ、グラフを描画して、キャプションを追加して、データの世界を変えよう!

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION