matplotlib: Y-Wert einfach als Prozent [%] formatieren

English Deutsch

Beim Plotten unseres Zeitreihen-Beispieldatensatzes ergibt sich folgender Plot

Pandas-Zeitreihen-Plot mit Sinuswerten unterhalb des Schwellenwerts durch NaN ersetzt

Dieser Beitrag zeigt, wie dieser Datensatz mit einer als Prozent formatierten Y-Achse einfach geplottet wird. Wir nehmen an, dass 1.00 auf 100% abgebildet wird. Dieser Beitrag basiert auf unserer vorherigen Arbeit zu Matplotlib benutzerdefinierter SI-Präfix-Einheiten-Tick-Formatter:

Hinweis: Für pandas muss zuerst df.plot() aufgerufen werden und set_major_formatter() danach aufgerufen werden!

matplotlib_percent.py
import matplotlib.ticker as mtick
df.plot()
plt.gca().yaxis.set_major_formatter(mtick.PercentFormatter(xmax=1.0))

Wenn stattdessen 100.0 auf 100% abgebildet werden soll, einfach xmax=100.0 verwenden:

matplotlib_percent_example.py
import matplotlib.ticker as mtick
df.plot()
plt.gca().yaxis.set_major_formatter(mtick.PercentFormatter(xmax=1.0))

Vollständiges Beispiel

matplotlib_full_example.py
import matplotlib.ticker as mtick

# Load pre-built time series example dataset
# Vordefinierten Zeitreihen-Beispieldatensatz laden
df = pd.read_csv("https://datasets.techoverflow.net/timeseries-example.csv", parse_dates=["Timestamp"])
df.set_index("Timestamp", inplace=True)

# Plot with Y axis scaled as percent
# Mit als Prozent skalierter Y-Achse plotten
df.plot()
plt.gca().yaxis.set_major_formatter(mtick.PercentFormatter(xmax=1.0))

Check out similar posts by category: Pandas, Python