Maison >développement back-end >Tutoriel Python >Comment créer un axe X 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.
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.
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.
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.
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!