Python | ファイル・OS 操作:グリッド線

Python Python
スポンサーリンク
  1. 概要(グリッド線は「値の位置と比較」を一瞬でわかるようにする補助線)
  2. 基本の使い方(ここが重要)
    1. 最短でグリッド線を表示する
    2. オブジェクト指向スタイルで確実に設定する
  3. 主目盛り・補助目盛り・軸別表示(読みやすさを決める設定)
    1. 主目盛り・補助目盛りを切り替える
    2. 片方の軸だけにグリッド線を引く
  4. スタイル調整(色・太さ・線種・透明度・前後関係)
    1. 見やすい強さと線種に整える
    2. 曲線や棒の上下関係(zorder)を調整する
  5. 実務の型(ヒスト・散布・対数スケール・副軸)
    1. ヒストグラムはYグリッドを強めに、Xグリッドは控えめに
    2. 散布図は両軸グリッドで相関を読みやすくする
    3. 対数スケールではグリッドを活用して桁を読み取りやすく
    4. 副軸を使う図では左右のグリッドを整理する
  6. よくある落とし穴の回避(線が強すぎる・密度過多・補助目盛り)
    1. 線が主役級に強く、データが埋もれる問題を避ける
    2. 目盛りが多すぎてグリッドが密になり視認性が低下する
    3. 補助目盛りのグリッドが出ない
  7. 例題で身につける(定番から一歩先まで)
    1. 例題1:基本のグリッド+スタイル調整
    2. 例題2:主目盛りと補助目盛りの両方にグリッド
    3. 例題3:縦方向だけにグリッド(棒グラフ向け)
    4. 例題4:散布図+対数スケールでグリッドを活用
  8. まとめ

概要(グリッド線は「値の位置と比較」を一瞬でわかるようにする補助線)

グリッド線(grid)は、目盛りに沿った薄い罫線で、値の位置を正確に読み取りやすくし、系列どうしの比較を助けます。Matplotlibでは1行で表示でき、表示軸の選択、主目盛り・補助目盛りの切り替え、色や太さ・線種・透明度まで細かく調整できます。初心者は「どの軸に引くか」「主目盛りか補助目盛りか」「見やすい強さとスタイル」を押さえるだけで、グラフの読みやすさが大きく向上します。


基本の使い方(ここが重要)

最短でグリッド線を表示する

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [100, 120, 90, 130]

plt.plot(x, y, marker="o")
plt.title("月別売上推移")
plt.xlabel("月"); plt.ylabel("売上(万円)")

plt.grid(True)        # 基本のグリッド(薄い灰の破線)
plt.tight_layout()    # ラベルと重ならないよう余白調整
plt.show()
Python

グリッドは「値の読み取り補助」です。まずはTrueで表示し、見た目は後から整えます。

オブジェクト指向スタイルで確実に設定する

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(6,4))
ax.plot([1,2,3,4], [100,120,90,130], marker="o")
ax.set_title("月別売上推移"); ax.set_xlabel("月"); ax.set_ylabel("売上(万円)")

ax.grid(True)         # この軸(ax)に対してグリッドを表示
fig.tight_layout()
plt.show()
Python

複数図(サブプロット)では、各軸に対して個別に設定すると意図が明確になります。


主目盛り・補助目盛り・軸別表示(読みやすさを決める設定)

主目盛り・補助目盛りを切り替える

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1,2,3,4], [100,120,90,130])

ax.minorticks_on()           # 補助目盛りを有効化
ax.grid(True, which="major") # 主目盛りのみ
# ax.grid(True, which="minor") # 補助目盛りのみ
# ax.grid(True, which="both")  # 主・補助の両方
plt.show()
Python

主目盛りは大きな目盛り、補助目盛りは細かい目盛りです。細かく読みたい図は補助目盛りを使います。

片方の軸だけにグリッド線を引く

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(["1月","2月","3月","4月"], [100,120,90,130])

ax.grid(True, axis="y")    # 縦方向のグリッドのみ(値の読み取りが主目的)
# ax.grid(True, axis="x")  # 横方向のみ
plt.show()
Python

折れ線や棒グラフは縦方向のグリッドだけで十分なことが多く、視覚が散らかりません。


スタイル調整(色・太さ・線種・透明度・前後関係)

見やすい強さと線種に整える

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1,2,3,4], [100,120,90,130], color="#4F81BD", marker="o")

ax.grid(True,
        color="#BBBBBB",      # 色(淡いグレー)
        linestyle=":",        # 破線(: や --)
        linewidth=0.8,        # 太さ
        alpha=0.8)            # 透明度
plt.show()
Python

グリッド線は「主役ではない」ため、淡い色・細い線・やや高めの透明度が基本です。

曲線や棒の上下関係(zorder)を調整する

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1,2,3,4], [100,120,90,130], zorder=3)  # データ線を前面へ
ax.grid(True, zorder=0)                          # グリッドを奥へ
plt.show()
Python

zorderで「前後」を指定すると、データがグリッドに埋もれず視認性が上がります。


実務の型(ヒスト・散布・対数スケール・副軸)

ヒストグラムはYグリッドを強めに、Xグリッドは控えめに

import matplotlib.pyplot as plt
import numpy as np

data = np.random.normal(loc=100, scale=15, size=300)
fig, ax = plt.subplots()
ax.hist(data, bins=20, edgecolor="white", alpha=0.8)
ax.grid(True, axis="y", linestyle=":", color="#CCCCCC")   # 縦方向の読み取り補助
plt.tight_layout(); plt.show()
Python

頻度の高さを読む場面では縦方向のグリッドだけで十分。横方向は目盛り自体で足ります。

散布図は両軸グリッドで相関を読みやすくする

import matplotlib.pyplot as plt

x = [1,2,3,4,5]; y = [2,4,2,5,7]
fig, ax = plt.subplots()
ax.scatter(x, y, color="tab:blue")
ax.grid(True, which="both", linestyle=":", alpha=0.6)
plt.show()
Python

両軸に薄めのグリッドを引くと、点の位置関係が直感的に把握できるようになります。

対数スケールではグリッドを活用して桁を読み取りやすく

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set_xscale("log")
ax.plot([1,10,100,1000],[2,3,4,5], marker="o")
ax.grid(True, which="both", linestyle=":", alpha=0.7)
ax.set_xlabel("サンプル数(対数)"); ax.set_ylabel("スコア")
plt.tight_layout(); plt.show()
Python

対数軸は目盛り間隔が非線形なので、両方のグリッドを薄く表示すると誤読を防げます。

副軸を使う図では左右のグリッドを整理する

import matplotlib.pyplot as plt

fig, ax1 = plt.subplots()
ax2 = ax1.twinx()

months = ["1月","2月","3月","4月"]
sales = [100,120,130,90]
profit = [30,25,35,20]

ax1.plot(months, sales, color="tab:blue")
ax2.plot(months, profit, color="tab:red")

ax1.grid(True, axis="y", color="#CCCCCC", linestyle=":", alpha=0.7)  # 左軸のグリッド
# 右軸に別のグリッドは重くなるので、基本は片側のみで十分
plt.tight_layout(); plt.show()
Python

グリッドの重複は視認性を下げます。片側を基準に整えるのが無難です。


よくある落とし穴の回避(線が強すぎる・密度過多・補助目盛り)

線が主役級に強く、データが埋もれる問題を避ける

グリッドの太さや濃さを弱め、線種は破線を選びます。データのzorderを上げ、グリッドのzorderを下げると改善します。

目盛りが多すぎてグリッドが密になり視認性が低下する

補助目盛り(minor)を無効化するか、目盛り数を減らします。必要な区間だけ表示したい場合は、軸範囲(set_xlim/set_ylim)を絞って密度を下げます。

補助目盛りのグリッドが出ない

補助目盛りにグリッドを引くには、先にax.minorticks_on()で補助目盛りを有効化します。which=”minor”またはwhich=”both”を指定します。


例題で身につける(定番から一歩先まで)

例題1:基本のグリッド+スタイル調整

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1,2,3,4], [100,120,90,130], marker="o")
ax.set_title("月別売上"); ax.set_xlabel("月"); ax.set_ylabel("売上(万円)")

ax.grid(True, color="#BBBBBB", linestyle=":", linewidth=0.8, alpha=0.8, zorder=0)
plt.tight_layout(); plt.show()
Python

例題2:主目盛りと補助目盛りの両方にグリッド

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1,2,3,4], [100,120,90,130])

ax.minorticks_on()
ax.grid(True, which="both", linestyle=":", color="#CCCCCC", alpha=0.7)
plt.show()
Python

例題3:縦方向だけにグリッド(棒グラフ向け)

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.bar(["A","B","C","D"], [10,12,9,15], color="tab:blue", alpha=0.9)

ax.grid(True, axis="y", linestyle=":", color="#DDDDDD")
plt.tight_layout(); plt.show()
Python

例題4:散布図+対数スケールでグリッドを活用

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set_xscale("log")
ax.scatter([1,10,100,1000], [2,3,4,5], color="tab:green")

ax.grid(True, which="both", linestyle=":", alpha=0.7)
ax.set_xlabel("規模(対数)"); ax.set_ylabel("指標")
plt.tight_layout(); plt.show()
Python

まとめ

グリッド線は「値の読み取り」と「比較」の補助役です。まずはTrueで表示し、主目盛り・補助目盛り、軸別表示を目的に合わせて選びます。スタイルは淡色・細線・破線・適度な透明度を基本に、zorderでデータを前面に保つ。散布図や対数軸では両軸グリッドを薄く、棒グラフでは縦方向中心に。密度過多や主役化を避ければ、初心者でも短いコードで“読める”グラフに仕上げられます。

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