Maison >développement back-end >Tutoriel Python >Comment éviter la notation exponentielle dans les tracés Matplotlib ?

Comment éviter la notation exponentielle dans les tracés Matplotlib ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-21 20:42:31280parcourir

How to Avoid Exponential Notation in Matplotlib Plots?

Éviter la notation exponentielle dans les tracés Matplotlib

Lors de la génération de tracés à l'aide de Matplotlib, il est courant de rencontrer des situations où les valeurs numériques sur les axes passent de la norme forme numérique en notation exponentielle (par exemple, de "1050" à "1.057e3"). Cela peut être indésirable, en particulier lors d'un zoom avant sur des sections spécifiques du graphique.

Pour éviter ce comportement, Matplotlib propose des options pour personnaliser le formatage des étiquettes de graduation. La gestion de la notation exponentielle est contrôlée par un objet Formatter, qui est généralement une instance de ScalerFormatter.

Désactiver le décalage constant

Par défaut, ScalerFormatter utilise un décalage constant si le changement fractionnaire des valeurs affichées est minime. Pour éviter cet effet et forcer l'affichage de la forme numérique standard, définissez l'indicateur useOffset du formateur majeur sur False :

<code class="python">import matplotlib.pyplot as plt

# Generate sample data
x = range(0, 100, 10) + 1000
y = range(0, 100, 10)

# Create a plot
plt.plot(x, y)
ax = plt.gca()  # Get the current axis

# Disable the constant shift
ax.get_xaxis().get_major_formatter().set_useOffset(False)

# Redraw the plot
plt.draw()</code>

Désactivez la notation scientifique

Si vous préférez éviter complètement la notation scientifique, vous pouvez utiliser la méthode set_scientific du formateur majeur :

<code class="python"># Disable scientific notation
ax.get_xaxis().get_major_formatter().set_scientific(False)</code>

Configuration globale

Alternativement, vous pouvez contrôler l'utilisation de l'exponentielle notation globalement en modifiant le paramètre axes.formatter.useoffset dans les paramètres de configuration de Matplotlib :

<code class="python">plt.rcParams['axes.formatter.useoffset'] = False</code>

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