Je sais comment tracer un graphique linéaire au-dessus du nuage de points des mêmes données, mais existe-t-il un moyen d'avancer le graphique linéaire de sorte qu'il se trouve au-dessus des marqueurs plutôt que derrière?

Exemple de code:

import numpy as np

x=np.array([1,2,3,4,5])
y=np.array([1,2,3,4,5])

plt.errorbar(x,y,xerr=0.1,yerr=0.1, fmt="x",markersize=5, color = "orange")
plt.plot(x,y)

Ce code produit un nuage de points avec un graphique linéaire derrière. Lorsque vous augmentez le nombre de points de données, il devient plus difficile de voir la ligne derrière tous. Outre la diminution de la taille du marqueur, puis-je mettre la ligne au-dessus de tous les points?

3
Oliver Moore 15 mars 2019 à 02:05

2 réponses

Meilleure réponse

Je pense que vous avez l'intention de dessiner des choses à différents niveaux d'ordre z sur l'écran. Cela se fait comme ceci:

plt.plot(x,y, zorder=10)

La note 10 est arbitrairement grande et cela s'affichera probablement au-dessus de votre légende, vous devrez donc peut-être l'ajuster!

1
Reedinationer 14 mars 2019 à 23:08

Vous pouvez utiliser l'option barsabove=True. Cela place les barres d'erreur au-dessus des marqueurs et la ligne s'affiche en haut des barres d'erreur et des marqueurs. Pour mettre en évidence cet effet, j'utilise une barre d'erreur épaisse. Comme vous pouvez le voir, la ligne bleue se trouve au-dessus des barres d'erreur et des marqueurs. Utilisez barsabove=False (valeur par défaut) pour voir la différence.

x=np.array([1,2,3,4,5])
y=np.array([1,2,3,4,5])

plt.errorbar(x,y,xerr=0.1,yerr=0.1, linewidth=10, fmt="x",markersize=5, color = "orange", barsabove=True)
plt.plot(x,y)

enter image description here

1
Sheldore 14 mars 2019 à 23:52