Maison >développement back-end >Tutoriel Python >Comment créer un axe X discontinu dans Matplotlib ?

Comment créer un axe X discontinu dans Matplotlib ?

DDD
DDDoriginal
2024-11-27 04:55:10498parcourir

How to Create a Discontinuous X-axis in Matplotlib?

Création d'un axe discontinu dans Matplotlib

Dans Matplotlib, il est possible de modifier l'apparence de l'axe des x pour indiquer une discontinuité entre deux plages de valeurs.

Personnalisation de l'axe

Bien qu'il n'existe aucun moyen direct de créer un axe discontinu, vous pouvez obtenez un effet similaire en personnalisant les étiquettes et l’apparence des axes. Une approche consiste à utiliser une transformation personnalisée pour créer un axe discontinu.

Sous-tracés

Si vous préférez ne pas créer de transformation personnalisée, vous pouvez utiliser des sous-tracés pour obtenir l'effet souhaité. En créant deux sous-tracés avec des limites d'axe x différentes et en masquant les épines entre eux, vous pouvez simuler un axe discontinu.

Exemple

import matplotlib.pyplot as plt
import numpy as np

x = np.r_[0:1:0.1, 9:10:0.1]
y = np.sin(x)

fig, (ax, ax2) = plt.subplots(1, 2, sharey=True)

ax.plot(x, y, 'bo')
ax2.plot(x, y, 'bo')

ax.set_xlim(0, 1) 
ax2.set_xlim(9, 10) 

ax.spines['right'].set_visible(False)
ax2.spines['left'].set_visible(False)
ax.yaxis.tick_left()
ax2.yaxis.tick_right()

plt.subplots_adjust(wspace=0.15)

plt.show()

Ce code crée un tracé avec deux sous-tracés, chacun montrant une plage différente de valeurs x. Le chevauchement entre les sous-traces est masqué pour créer l'apparence d'un axe discontinu.

Effet de rupture

Pour ajouter l'effet de lignes d'axe brisées (//), vous pouvez utiliser le code suivant :

ax.plot((1-d,1+d),(-d,+d), **kwargs) # top-left diagonal
ax.plot((1-d,1+d),(1-d,1+d), **kwargs) # bottom-left diagonal

kwargs.update(transform=ax2.transAxes) # switch to the bottom axes
ax2.plot((-d,d),(-d,+d), **kwargs) # top-right diagonal
ax2.plot((-d,d),(1-d,1+d), **kwargs) # bottom-right diagonal

où d représente la taille des lignes diagonales en coordonnées d'axes. Ce code ajoute des lignes diagonales aux coins de chaque axe, donnant l'impression d'un axe cassé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn