So, I've been messing around with matplotlib
and found out this. If I plot different symbols atop each other with alpha
less than 1:
kwdict_plot={
'marker':'o',
'markersize':70,
'alpha':0.6,
'markeredgewidth':0,
}
fig, ax = plt.subplots(1,2, figsize=(6,3))
ax[0].plot([ sqrt(3/4)],[-0.5], color='r', **kwdict_plot)
ax[0].plot([ 0],[ 1 ], color='g', **kwdict_plot)
ax[0].plot([-sqrt(3/4)],[-0.5], color='b', **kwdict_plot)
ax[0].set_xlim([-3,3])
ax[0].set_ylim([-3,3])
ax[0].set_aspect('equal')
ax[0].set_title('r->g->b')
ax[1].plot([-sqrt(3/4)],[-0.5], color='b', **kwdict_plot)
ax[1].plot([ 0],[ 1 ], color='g', **kwdict_plot)
ax[1].plot([ sqrt(3/4)],[-0.5], color='r', **kwdict_plot)
ax[1].set_xlim([-3,3])
ax[1].set_ylim([-3,3])
ax[1].set_aspect('equal')
ax[1].set_title('b->g->r')
fig.tight_layout()
Then the final color seems to be affected by the order with which symbols are drawn.
I always believed that alpha channel represents the transparency that it would act as an multiplicative operation on the spectrum it transmits. Just like simulating the cellophane papers or colored filters with different colors. Apparently this seems not the case in matplotlib
.
So, how does it work actually? And how can I get the colors mixed symmetrically?