Matplotlibで凡例のマーカーサイズと透明度(アルファ)を設定する方法
Matplotlibでは、凡例に表示されるマーカーのサイズや透明度(アルファ値)は、そのままではプロット本体と同じ設定が適用されます。これらを個別に変更したい場合は、凡例ハンドルの内部にあるマーカーオブジェクトに直接アクセスして調整します。
この記事では、散布図風のプロットを作成し、凡例内のマーカーサイズとアルファ値を変更する具体的な手順を解説します。
実装手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を自動調整します。
- サンプルデータの個数を格納する変数 N を初期化します。
- xデータとyデータを、marker="*"(星形マーカー)を使ってプロットします。
- 図に凡例を配置します。
- 凡例ハンドルからマーカーオブジェクトを取得し、マーカーサイズとアルファ値を設定します。
- show() メソッドで図を表示します。
コード例
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
line, = plt.plot(x, y, marker='*', markersize=20, markeredgecolor='black',
alpha=0.4, ls='none', label='Random Data')
legend = plt.legend(loc='upper right')
legend.legendHandles[0]._legmarker.set_markersize(15)
legend.legendHandles[0]._legmarker.set_alpha(1)
plt.show()コードのポイント
このコードでは、プロット本体のマーカーは markersize=20・alpha=0.4 と半透明に大きく表示しています。一方、凡例側では以下の2行で設定を上書きしています。
- set_markersize(15): 凡例内のマーカーサイズを15に変更します。
- set_alpha(1): 凡例内のマーカーを不透明(alpha=1)にし、視認性を高めます。
なお、_legmarker は内部的な属性であるため、Matplotlibのバージョンによっては動作が変わる可能性があります。より新しいバージョンでは legend.legend_handles[0].get_children() などでハンドルを確認する方法も検討してください。
出力結果
上記のコードを実行すると、次のような出力が得られます。

グラフ本体には半透明で大きな星形マーカーが表示され、右上の凡例には小さめで不透明なマーカーが表示されていることが確認できます。これにより、データ部分と凡例部分でそれぞれ異なるスタイルを柔軟に使い分けることが可能になります。
-
Matplotlibで2本の点線をプロットする方法|マーカー・線種・凡例の設定も解説
はじめに この記事では、Pythonの可視化ライブラリ「Matplotlib」を使って、2本の線を1つのグラフに描画し、それぞれに異なる線種(点線・破線)や色、太さを設定する方法を解説します。 コーディングを始める前に、まず次のコマンドでMatplotlibをインポートしておきましょう。 import matplotlib.pyplot as plt Pyplotは、MatplotlibをMATLABのように直感的に操作できるようにするためのコマンドスタイル関数のコレクションです。グラフの描画からラベル付けまで、ほとんどの操作をこのモジュール経由で行います。 アルゴリズム(処理の流れ) ステ
-
PythonでPhantomJSとSelenium WebDriverを使ってウィンドウサイズを設定する方法
PhantomJSとSelenium WebDriverでウィンドウサイズを設定する方法Pythonでは、PhantomJSとSelenium WebDriverを組み合わせることで、ブラウザのウィンドウサイズを自由に制御できます。PhantomJSを利用するには、まずwebdriver.PhantomJSクラスのドライバーオブジェクトを作成します。その際、phantomjs.exeドライバーファイルへのパスを引数として渡してください。ウィンドウサイズを設定するには、set_window_sizeメソッドを使用し、幅と高さを引数として指定します。また、現在のブラウザのウィンドウサイズを取得した