xlabel legends example python matplotlib

python - legends - FIll entre dos líneas verticales en matplotlib



matplotlib title position (1)

matplotlib los examples en la documentación matplotlib , pero no estaba claro cómo puedo hacer una trama que llene el área entre dos líneas verticales específicas.

Por ejemplo, supongamos que quiero crear una gráfica entre x=0.2 y x=4 (para el rango completo de la gráfica). ¿Debo usar fill_between , fill o fill_betweenx ?

¿Puedo usar la condición where para esto?


Parece que quieres axvspan , en lugar de uno de los rellenos entre funciones. La diferencia es que axvspan (y axhspan ) llenarán toda la extensión y (o x) de la trama, independientemente de cómo se acerque.

Por ejemplo, usemos axvspan para resaltar la región x entre 8 y 14:

import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot(range(20)) ax.axvspan(8, 14, alpha=0.5, color=''red'') plt.show()

Podría usar fill_betweenx para hacer esto, pero las extensiones (tanto xey) del rectángulo estarían en coordenadas de datos . Con axvspan , las extensiones y del rectángulo por defecto son 0 y 1 y están en coordenadas de los ejes (en otras palabras, porcentajes de la altura de la gráfica).

Para ilustrar esto, hagamos que el rectángulo se extienda del 10% al 90% de la altura (en lugar de abarcar toda la extensión). Intente hacer zoom o panorámica, y observe que las extensiones y dicen que están fijadas en el espacio de visualización, mientras que las extensiones x se mueven con el zoom / panorámica:

import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot(range(20)) ax.axvspan(8, 14, ymin=0.1, ymax=0.9, alpha=0.5, color=''red'') plt.show()