Par défaut avec matplotlib, si on trace une droite et un nuage de points, les points sont placés en arrière-plan:

import matplotlib.pyplot as pltx = [1,2,3,4,5,6,7,8,9]y = [1,2,3,4,5,6,7,8,9]plt.plot([0,10],[0,10])plt.scatter(x,y,s=300,color='red')plt.title("Tracer un nuage de points devant une droite")plt.grid()plt.savefig("scatter_points_order_01.png", bbox_inches='tight')plt.show()plt.close()
Si on veut les points devant la droite il faut utiliser l'option zorder

import matplotlib.pyplot as pltx = [1,2,3,4,5,6,7,8,9]y = [1,2,3,4,5,6,7,8,9]plt.plot([0,10],[0,10],zorder=1)plt.scatter(x,y,s=300,color='red',zorder=2)plt.title("Tracer un nuage de points devant une droite")plt.grid()plt.savefig("scatter_points_order_02.png", bbox_inches='tight')plt.show()
L'option zorder permet de définir un ordre: zorder=n+1 est devant zorder=n .
Références
| Liens | Site |
|---|---|
| How to plot the lines first and points last in matplotlib | stackoverflow |
| pylab_examples example code: zorder_demo.py | matplotlib doc |
| Specifying the order of matplotlib layers | stackoverflow |
