Matplotlib - 線を透明にせずにマーカーの面の色を透明にする方法 質問する

Matplotlib - 線を透明にせずにマーカーの面の色を透明にする方法 質問する

matplotlib で線の透明度を設定する方法を知っています。たとえば、次のコードは線とマーカーを透明にします。

import numpy as np
import matplotlib.pyplot as plt

vec = np.random.uniform(0, 10, 50)
f = plt.figure(1)
ax = f.add_subplot(111)
ax.plot(vec, color='#999999', marker='s', alpha=0.5)

線のアルファを 1.0 にし、マーカーの面の色を半透明 (アルファ = 0.5) にしたいのですが、これは matplotlib で実行できますか?

ベストアンサー1

これを 1 行で行う正しい方法については、以下の @Pelson の回答を参照してください。

Line2D2 つの独立したオブジェクトを粘着テープで貼り合わせるという、ちょっとした方法でこれを実現できます。

th = np.linspace(0, 2 * np.pi, 64)
y = np.sin(th)
ax = plt.gca()

lin, = ax.plot(th, y, lw=5)
mark, = ax.plot(th, y, marker='o', alpha=.5, ms=10)

ax.legend([(lin, mark)], ['merged'])
plt.draw()

デモフィギュア

こちらをご覧ください説明のため

おすすめ記事