折れ線グラフのマーカは不透明で、線のみ透明に
plot
の alpha
を指定すると、線とマーカが両方透明度が設定される。
Matplotlib - How to make the marker face color transparent without making the line transparent
を見ると個別に設定できる旨があったが、色は指定したくなかった。
get_color
, get_markerfacecolor
で色は取れるので、to_rgb
で16進文字列をRGBに変換して再指定でできた。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import to_rgb
plt.figure()
plt.plot(np.random.randn(10), np.random.randn(10), "*")
l, = plt.plot(range(10), np.random.randn(10), "+-")
print("before", l.get_color(), l.get_markerfacecolor())
l.set_color((*to_rgb(l.get_color()), 0.1))
l.set_markerfacecolor((*to_rgb(l.get_markerfacecolor()), 1))
print("after", l.get_color(), l.get_markerfacecolor())
plt.show()
**alphaでマーカだけ、線だけ透明度設定できればいいのに。