webdevqa.jp.net

透明なマーカーであるが不透明なエッジでのプロット

固定色Edgeを持つ透明マーカーを使用してmatplotlibでプロットを作成しようとしています。しかし、透明な塗りつぶしでマーカーを達成することはできません。

ここに最小限の作業例を示します:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y1 = 2*x + 1
y2 = 3*x - 5

plt.plot(x,y1, 'o-', lw=6, ms=14)
plt.plot(x,y2, 'o', ms=14, markerfacecolor=None, alpha=0.5, markeredgecolor='red', markeredgewidth=5)

plt.show()

これを達成するためにオンラインで見つけた2つのテクニックを試しました:1)アルファパラメータを設定します。ただし、これによりマーカーのエッジも透明になり、これは望ましい効果ではありません。 2)markerfacecolor = Noneを設定しますが、これは私のプロットには影響しません

これに対する解決策はありますか?

29
IanRoberts

これはMatplotlibでは扱いにくいです...値Noneの代わりに文字列"None"を使用する必要があります。

plt.plot(x,y2, 'o', ms=14, markerfacecolor="None",
         markeredgecolor='red', markeredgewidth=5)
43