サイトアイコン ITC Media

matplotlibのfigureを理解しよう!グラフ描画の基礎からサイズ設定まで完全解説

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

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

「matplotlibのfigureって何だろう?」
「グラフのサイズがうまく調整できない」
「複数のグラフを一度に表示させたい」

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

当記事では、matplotlibのfigureの基礎から応用的な使い方まで、実例を交えて幅広く解説していきます。
ぜひ最後までご覧ください。

matplotlibのfigureとは

matplotlibのfigureは、グラフを描画する際の土台となる重要な要素です。
グラフを描く際には、まずfigureを理解することが大切なのです。

figureの基本概念

figureは、matplotlibでグラフを描画する際の「キャンバス」のような存在です。
すべてのグラフは、このfigure上に描かれていきます。
以下のコードで、最も基本的なfigureを作成できます。

import matplotlib.pyplot as plt

fig = plt.figure()
plt.show()

figureの役割と重要性

figureは、グラフ全体のサイズや配置を管理する重要な役割を担っています。
複数のグラフを配置する際にも、このfigureが基準となるのです。
例えば、以下のようにしてfigureのサイズを指定できます。

fig = plt.figure(figsize=(8, 6))  # 幅8インチ、高さ6インチ
plt.show()

figureの基本的な作成方法

figureの作成には、主に2つの方法があります。
1つ目は、先ほど見たplt.figure()を使う方法です。
2つ目は、以下のようにsubplotsを使う方法になります。

fig, ax = plt.subplots()
plt.show()

figureのサイズ設定方法

グラフを見やすく表示するためには、適切なサイズ設定が重要です。
ここでは、figureのサイズを調整するさまざまな方法を紹介していきます。

基本的なサイズ設定

figureのサイズは、figsizeパラメータで設定できます。
単位はインチで指定し、(幅, 高さ)の形式で記述します。
具体的には以下のように設定できます。

# 幅10インチ、高さ5インチのfigureを作成
fig = plt.figure(figsize=(10, 5))
plt.plot([1, 2, 3, 4])
plt.show()

DPIの設定方法

DPI(Dots Per Inch)は、画像の解像度を決定する重要な要素です。
高いDPI値を設定すると、より鮮明な画像が得られます。
以下のコードでDPIを設定できます。

fig = plt.figure(figsize=(8, 6), dpi=300)  # 300DPIの高解像度
plt.plot([1, 2, 3, 4])
plt.show()

サイズの単位について

figureのサイズ指定には、インチ以外の単位も使用できます。
センチメートルやピクセルでの指定も可能です。
以下に、異なる単位での指定方法を示します。

# センチメートルでの指定
from matplotlib.figure import Figure
fig = Figure(figsize=(20/2.54, 15/2.54))  # 20cm × 15cm

# ピクセルでの指定(DPIを考慮)
dpi = 100
fig = plt.figure(figsize=(800/dpi, 600/dpi))  # 800px × 600px

複数グラフの配置方法

複数のグラフを1つのfigureに配置することで、データの比較や関連性の表示が容易になります。
ここでは、複数グラフの効果的な配置方法を解説します。

subplotsの基本的な使い方

subplotsを使用すると、簡単に複数のグラフを配置できます。
行数と列数を指定することで、グラフの配置を決定します。
以下のコードは、2行2列のグラフ配置を示しています。

fig, axes = plt.subplots(2, 2)
axes[0, 0].plot([1, 2, 3])  # 左上のグラフ
axes[0, 1].plot([3, 2, 1])  # 右上のグラフ
axes[1, 0].plot([2, 3, 1])  # 左下のグラフ
axes[1, 1].plot([1, 3, 2])  # 右下のグラフ
plt.show()

グリッドレイアウトの設定

GridSpecを使用すると、より柔軟なグリッドレイアウトが可能です。
グラフのサイズを個別に調整できるのが特徴です。
以下は、異なるサイズのグラフを配置する例です。

import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(10, 8))
gs = gridspec.GridSpec(3, 3)  # 3×3のグリッド

ax1 = fig.add_subplot(gs[0, :])  # 1行目全体
ax2 = fig.add_subplot(gs[1:, 0:2])  # 残り2行×2列
ax3 = fig.add_subplot(gs[1:, 2])  # 残り2行×1列

plt.show()

不規則な配置方法

add_subplotを使用すると、より自由な配置が可能になります。
これは、従来の番号指定方式を使用する方法です。
以下のコードで、不規則な配置を実現できます。

fig = plt.figure(figsize=(10, 8))
ax1 = fig.add_subplot(221)  # 2×2の1番目
ax2 = fig.add_subplot(223)  # 2×2の3番目
ax3 = fig.add_subplot(122)  # 1×2の2番目

plt.show()

figureの装飾と調整

グラフをより見やすく、美しく表示するためには、適切な装飾と調整が必要です。
ここでは、figureの見た目を改善するための方法を解説します。

タイトルと軸ラベルの設定

タイトルや軸ラベルは、グラフの内容を理解する上で重要な要素です。
これらの設定は、さまざまなメソッドを使用して行えます。
以下のコードで、基本的な設定方法を示します。

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

# タイトルと軸ラベルの設定
ax.set_title('グラフのタイトル', pad=20)  # タイトルの位置調整
ax.set_xlabel('X軸ラベル')
ax.set_ylabel('Y軸ラベル')

plt.show()

余白の調整方法

グラフ間の余白や、figure全体の余白を適切に設定することで、見やすさが向上します。
tight_layoutやsubplots_adjustを使用して調整できます。
以下に、両方の方法を示します。

# tight_layoutを使用する場合
fig, axes = plt.subplots(2, 2)
plt.tight_layout(pad=3.0)  # パディングを3.0に設定

# subplots_adjustを使用する場合
fig, axes = plt.subplots(2, 2)
plt.subplots_adjust(
    left=0.1,    # 左余白
    right=0.9,   # 右余白
    bottom=0.1,  # 下余白
    top=0.9,     # 上余白
    wspace=0.4,  # 水平方向のスペース
    hspace=0.4   # 垂直方向のスペース
)

スタイルの変更方法

matplotlibには、あらかじめ用意されたスタイルがあります。
これらを使用することで、グラフの見た目を簡単に変更できます。
以下のコードで、スタイルの使用方法を示します。

# 利用可能なスタイルの確認
print(plt.style.available)

# スタイルの適用
plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4])
plt.show()

# 一時的なスタイル変更
with plt.style.context('ggplot'):
    fig, ax = plt.subplots()
    ax.plot([1, 2, 3, 4])
    plt.show()

figure保存の方法

作成したグラフを保存することで、後で参照したり、ドキュメントに使用したりできます。
ここでは、figureを適切に保存する方法を解説します。

基本的な保存方法

figureの保存には、savefigメソッドを使用します。
さまざまな形式で保存することが可能です。
以下のコードで、基本的な保存方法を示します。

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

# PNG形式で保存
plt.savefig('graph.png')

# PDF形式で保存
plt.savefig('graph.pdf')

# SVG形式で保存
plt.savefig('graph.svg')

画質の調整方法

保存時の画質は、DPIやフォーマットの設定で調整できます。
高画質が必要な場合は、これらのパラメータを適切に設定します。
以下のコードで、画質調整の方法を示します。

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

# 高解像度で保存
plt.savefig('high_quality.png', dpi=300, bbox_inches='tight')

# JPEGの品質を指定して保存
plt.savefig('compressed.jpg', quality=95)  # 95%の品質

# ベクター形式で保存(高品質)
plt.savefig('vector.pdf', format='pdf')

透過設定の方法

背景を透過させることで、他のドキュメントに組み込みやすくなります。
transparentパラメータを使用して設定できます。
以下のコードで、透過設定の方法を示します。

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

# 背景を透過させて保存
plt.savefig('transparent.png', transparent=True)

# 背景色を指定して保存
fig.patch.set_facecolor('white')  # 背景色を白に設定
plt.savefig('white_background.png')

# 特定の領域のみ透過
ax.patch.set_alpha(0.0)  # プロット領域を透過
plt.savefig('partial_transparent.png')

まとめ

当記事では、matplotlibのfigureについて学習してきました。

これらの知識を活用することで、より効果的なデータ可視化が可能になります。

まずは簡単なグラフから始めて、少しずつ複雑な表現に挑戦してみましょう。

実際のデータを使って、学んだ技術を試してみることをおすすめします。

モバイルバージョンを終了