Remplir Entrex Démo #

Utiliser fill_betweenxpour 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)')
entre (x1, 0), entre (x1, 1), entre (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 :

fill_between(y[where], x1[where], x2[where])

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')
fill_betweenx où, les régions avec x2 > 1 sont masquées
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.

Durée totale d'exécution du script : (0 minutes 1,113 secondes)

Galerie générée par Sphinx-Gallery