MENU
カタログクリップ
本ページはプロモーションを含みます。

凡例のマーカーサイズとフォントサイズの調整方法 [matplotlib]

2025 3/04
広告
matplotlib
2025年3月3日2025年3月4日

以下では、matplotlib の凡例(legend)における フォントサイズやマーカーサイズの調整方法を中心に解説します。サンプルコードとともに、よく使われるオプションを取り上げます。

目次

凡例の表示と基本的なオプション

matplotlib で凡例を表示する場合、通常は plt.plot() や plt.scatter() 等で引数 label を指定し、最後に plt.legend() を呼び出します。次のようなサンプルコードを例に見てみましょう。

import matplotlib.pyplot as plt

# データ作成例
x = [1, 2, 3, 4]
y1 = [10, 8, 6, 4]
y2 = [2, 4, 6, 8]

# 線グラフ(マーカー付き)
plt.plot(x, y1, marker='o', label='Data 1')
plt.plot(x, y2, marker='x', label='Data 2')

# 凡例を表示
plt.legend()

plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.title('凡例のマーカーサイズとフォントサイズ')
plt.show()

このコードでは、label 引数を設定した2つのグラフが描かれ、plt.legend() によって凡例が表示されます。

凡例のフォントサイズを変更する

凡例の文字(ラベル)の大きさを変更したい場合は、plt.legend() に fontsize(または prop={'size': ...})を指定します。以下の例では、凡例のフォントサイズを 14pt に指定しています。

plt.legend(fontsize=14)

あるいは、次のように書くこともできます。

plt.legend(prop={'size': 14})

凡例のマーカーサイズを変更する

凡例に表示されるマーカーの大きさは、オプション markerscale で設定できます。markerscale は 「グラフ上のマーカーサイズに対して何倍にするか」 を指定するものです。

markerscale の使用例

plt.legend(markerscale=2, fontsize=14)

上記の例では、グラフ上のマーカーサイズの 2 倍の大きさで凡例に表示されます。なお、散布図(plt.scatter())などでは、プロット時に s パラメータでマーカーの面積を指定している場合があるので、実際の表示との関係に注意してください。

その他の凡例調整オプション

matplotlib の凡例には、以下のようなさまざまなパラメータが用意されています。これらを適宜組み合わせることで、レイアウトや見た目を詳細に調整できます。

  • loc
    凡例の表示位置を指定します。例: loc='upper left'、loc='lower right'、loc='center' など。
  • title
    凡例にタイトルを付与します。plt.legend(title='凡例', markerscale=2, fontsize=14)
  • ncol
    凡例の列数を指定し、複数のラベルがある場合に横並びで表示することができます。plt.legend(ncol=2)
  • frameon
    凡例の枠線の表示/非表示を切り替えます。plt.legend(frameon=False)
  • その他のパラメータ
    • handlelength: 凡例内の線の長さを指定。
    • handletextpad: 凡例のマーカーとテキスト間のパディングを指定。
    • borderpad: 凡例内のコンテンツと枠線との間の余白。
    • labelspacing: 各ラベル間の垂直方向の間隔。
    • columnspacing: 複数列の場合の列間の間隔。
    • borderaxespad: 凡例とプロットエリアとの間の余白。

以下のコードは複数のオプションを組み合わせた例です。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y1 = [10, 8, 6, 4]
y2 = [2, 4, 6, 8]

plt.plot(x, y1, marker='o', label='Data 1')
plt.plot(x, y2, marker='x', label='Data 2')

plt.legend(
    loc='upper right',       # 表示位置
    fontsize=12,             # フォントサイズ
    markerscale=2,           # マーカーサイズの倍率
    title='凡例',            # 凡例タイトル
    ncol=1,                  # 列数
    frameon=True,            # 枠線の表示
    handlelength=2,          # 線の長さ
    handletextpad=0.5,       # マーカーとテキストの間隔
    labelspacing=0.5,        # 各ラベル間の間隔
    borderpad=0.4,           # 凡例内の余白
    columnspacing=1.0        # 複数列の場合の列間間隔
)

plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.title('詳細な凡例設定例')
plt.show()

legend オブジェクトを使った後からの調整

plt.legend() は Legend オブジェクトを返すので、返り値を利用してさらに細かく調整することも可能です。たとえば、凡例の枠線の色や背景色の変更、透明度の設定などが挙げられます。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [10, 8, 6, 4]

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

# 凡例オブジェクトを取得
legend = plt.legend(fontsize=12, markerscale=2, title='凡例')

# 凡例の枠線を取得して設定変更
frame = legend.get_frame()
frame.set_edgecolor('black')
frame.set_linewidth(1.5)

# 背景色や透明度も変更可能
frame.set_facecolor('#f0f0f0')
frame.set_alpha(0.8)

plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.title('Legend オブジェクトでのカスタマイズ')
plt.show()

まとめ

  • 凡例の基本設定: plt.legend() を用いて各プロットに設定した label を元に凡例を作成。
  • フォントサイズ: fontsize または prop={'size': ...} を使用してテキストサイズを変更。
  • マーカーサイズ: markerscale を利用して、グラフ上のマーカーに対する倍率で凡例内のマーカーサイズを調整。
  • その他のオプション: loc、title、ncol、frameon 以外にも、handlelength や handletextpad、borderpadなど多彩なパラメータが利用可能。
  • Legend オブジェクトでの調整: plt.legend() の返り値を活用して、枠線や背景色、透明度などを後から設定可能。

各パラメータは公式ドキュメントにも詳しく記載されていますので、さらに細かい設定や最新情報についてはそちらも確認するとよいでしょう。

参考

  • https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html
  • 凡例 (legend) の位置を自由に調整する方法 [matplotlib]
  • 凡例を枠外に配置する方法 [matplotlib]
  • 凡例の枠を消す・透明にする・スタイルを変更する方法 [matplotlib]
  • matplotlib の凡例を消す方法
matplotlib

関連記事

  • クイックスタートガイド matplotlibドキュメント日本語訳
    2025年3月4日
  • colormapを取得する方法。 [matplotlib]
    2025年3月4日
  • colormapを自作する3つの方法。 [matplotlib]
    2025年3月4日
  • scatter(散布図)プロットでcolormapを使用する方法。[matplotlib]
    2025年3月4日
  • colormapの範囲指定方法・高度な正規化の方法。 [matplotlib]
    2025年3月4日
  • Colorbarを反転する2つの方法 [matplotlib]
    2025年3月4日
  • matplotlib で colormap を反転する2つの方法
    2025年3月4日
  • cmap(colormap)一覧と選び方・使用方法 [matplotlib]
    2025年3月4日
カテゴリー
  • コンピューター
    • gnuplot & eps
    • mac
    • matplotlib
    • wordpress
  • ホーム・家電
    • アイロン
    • オーディオ
    • オーラルケア
      • ジェットウォッシャー
      • 音波振動歯ブラシ
    • カメラ
    • カー用品
    • クリーナー
    • テレビ、レコーダー
    • ドアホン
    • メンズ美容家電
      • ラムダッシュ
    • ルンバ
    • 一覧比較
    • 工具
    • 浄水器
    • 温水洗浄便座
    • 炊飯器
    • 空気清浄機・加除湿機
    • 空調・季節家電
    • 美容家電
      • フェイスケア
      • ヘアケア
      • ボディーケア
    • 血圧計
    • 調理器具
    • 電子レンジ
  • 健康
  • 家事
    • パン
    • 料理
    • 育児
    • 食品
      • おせち
      • コーヒー
  • 書籍
  • 知識
  • 趣味
    • ペン字
    • ロードバイク・クロスバイク
    • 車
    • 鉄道模型
    • 電子工作
サイト内検索
最近の投稿
  • モナークHGとモナークM7の4つの違い。[ニコン双眼鏡]
  • ニコン モナーク M7とM5の4つの違い。[双眼鏡]
  • Speed Wi-Fi DOCK 5G 01の実機使用レビュー。
  • RZ-760、GT-760、ST-760の違い。[ガス缶・CB缶]
  • RZ-730、RZ-730S、RZ-730SBK、RZ-730SWH、ST-Y450の違い。
  • TC-EA35WとTC-E123SBKの違いを比較。[スティッククリーナー]
  1. ホーム
  2. コンピューター
  3. matplotlib
  4. 凡例のマーカーサイズとフォントサイズの調整方法 [matplotlib]
  • ホーム
  • プライバシーポリシー

© カタログクリップ
contact@beiznotes.org

目次