matplotlib でグラフを作成する際、凡例(legend)に枠がついていることがあります。この枠を取り除いたり、スタイルを変更したりする方法について解説します。
目次
1. 凡例の枠を消す基本的な方法
Matplotlib では、legend()
メソッドの frameon
オプションを False
に設定することで、凡例の枠を消すことができます。デフォルトでは frameon=True
になっており、枠が表示される仕様になっています。
import matplotlib.pyplot as plt
import numpy as np
# データ作成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# グラフ作成
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
# 凡例の枠を消す
plt.legend(frameon=False)
# グラフを表示
plt.show()
このコードを実行すると、凡例の枠が消えた状態で表示されます。

凡例の枠の細かい調整
枠を完全に消すのではなく、透明にする方法や、枠線のスタイルを変更する方法もあります。透明度の調整は、背景がグラフに影響を与えないようにしたい場合に便利です。また、枠線のスタイル変更は、デザインの統一感を出したいときに役立ちます。
枠の透明度を調整する
plt.legend(framealpha=0)
framealpha
を 0
に設定すると、凡例の枠が透明になり、見えなくなります。
0.5では透過します。
plt.legend(framealpha=0.5)

枠線の色を変更する
plt.legend(edgecolor='red')
このコードでは、凡例の枠の色を赤 (red
) に変更します。

枠線のスタイルを変更する
plt.legend(edgecolor='blue', fancybox=True, shadow=True)
このコードでは、枠の角を丸くする fancybox=True
を適用し、枠の色を青 (blue
) に変更します。

まとめ
matplotlib の凡例の枠を消す方法やには、以下のオプションがあります。
frameon=False
: 完全に枠を消す。framealpha=0
: 枠を透明にする。
スタイル変更には次のオプションも使用できます。
edgecolor='色名'
: 枠線の色を変更する。fancybox=True
: 角を丸くする。