Noter
Cliquez ici pour télécharger l'exemple de code complet
Remplir Entrex Démo #
Utiliser fill_betweenx
pour colorer le long de la direction horizontale entre deux courbes.
import matplotlib.pyplot as plt
import numpy as np
y = np.arange(0.0, 2, 0.01)
x1 = np.sin(2 * np.pi * y)
x2 = 1.2 * np.sin(4 * np.pi * y)
fig, [ax1, ax2, ax3] = plt.subplots(1, 3, sharey=True, figsize=(6, 6))
ax1.fill_betweenx(y, 0, x1)
ax1.set_title('between (x1, 0)')
ax2.fill_betweenx(y, x1, 1)
ax2.set_title('between (x1, 1)')
ax2.set_xlabel('x')
ax3.fill_betweenx(y, x1, x2)
ax3.set_title('between (x1, x2)')
Text(0.5, 1.0, 'between (x1, x2)')
Remplissez maintenant entre x1 et x2 lorsqu'une condition logique est remplie. Notez que c'est différent de l'appel :
en raison des effets de bord sur plusieurs régions contiguës.
fig, [ax, ax1] = plt.subplots(1, 2, sharey=True, figsize=(6, 6))
ax.plot(x1, y, x2, y, color='black')
ax.fill_betweenx(y, x1, x2, where=x2 >= x1, facecolor='green')
ax.fill_betweenx(y, x1, x2, where=x2 <= x1, facecolor='red')
ax.set_title('fill_betweenx where')
# Test support for masked arrays.
x2 = np.ma.masked_greater(x2, 1.0)
ax1.plot(x1, y, x2, y, color='black')
ax1.fill_betweenx(y, x1, x2, where=x2 >= x1, facecolor='green')
ax1.fill_betweenx(y, x1, x2, where=x2 <= x1, facecolor='red')
ax1.set_title('regions with x2 > 1 are masked')
Text(0.5, 1.0, 'regions with x2 > 1 are masked')
Cet exemple illustre un problème ; en raison du maillage des données, il existe des triangles non remplis indésirables aux points de croisement. Une solution de force brute serait d'interpoler tous les tableaux sur une grille très fine avant de tracer.
plt.show()
Durée totale d'exécution du script : (0 minutes 1,113 secondes)