Heim >Backend-Entwicklung >Python-Tutorial >Wie vermeide ich die Exponentialschreibweise in Matplotlib-Plots?

Wie vermeide ich die Exponentialschreibweise in Matplotlib-Plots?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-21 20:42:31280Durchsuche

How to Avoid Exponential Notation in Matplotlib Plots?

Vermeiden der exponentiellen Notation in Matplotlib-Plots

Beim Generieren von Plots mit Matplotlib kommt es häufig zu Situationen, in denen numerische Werte auf den Achsen vom Standard abweichen Zahlenform in Exponentialschreibweise (z. B. von „1050“ bis „1,057e3“). Dies kann insbesondere beim Vergrößern bestimmter Abschnitte des Diagramms unerwünscht sein.

Um dieses Verhalten zu verhindern, bietet Matplotlib Optionen zum Anpassen der Formatierung von Teilstrichbeschriftungen. Die Handhabung der Exponentialschreibweise wird durch ein Formatter-Objekt gesteuert, das normalerweise eine Instanz von ScalerFormatter ist.

Konstante Verschiebung deaktivieren

Standardmäßig verwendet ScalerFormatter eine konstante Verschiebung, wenn Die prozentuale Änderung der angezeigten Werte ist minimal. Um diesen Effekt zu vermeiden und die Anzeige der Standard-Zahlenform zu erzwingen, setzen Sie das useOffset-Flag des Hauptformatierers auf 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>

Wissenschaftliche Notation deaktivieren

Wenn Sie Wenn Sie die wissenschaftliche Notation lieber ganz vermeiden möchten, können Sie die set_scientific-Methode des Hauptformatierers verwenden:

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

Globale Konfiguration

Alternativ können Sie die Verwendung von Exponentialschrift steuern Notation global durch Ändern des Parameters axis.formatter.useoffset in den Konfigurationseinstellungen von Matplotlib:

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

Das obige ist der detaillierte Inhalt vonWie vermeide ich die Exponentialschreibweise in Matplotlib-Plots?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn