Maison >développement back-end >Tutoriel Python >Comment puis-je formater un axe datetime dans matplotlib pour afficher uniquement l'année et le mois ?

Comment puis-je formater un axe datetime dans matplotlib pour afficher uniquement l'année et le mois ?

DDD
DDDoriginal
2024-10-27 18:46:30263parcourir

How can I format a datetime axis in matplotlib to show only year and month?

Ajustement du format d'un axe datetime

Dans un scénario où vous avez une série avec un index datetime que vous souhaitez visualiser, vous pouvez rencontrer une situation où le le graphique affiche les horodatages comprenant les heures, les minutes et les secondes malgré votre préférence pour un format plus simple comme « aaaa-mm » ou « mars 2016 ».

Pour résoudre ce problème et obtenir le formatage souhaité, nous pouvons exploiter les fonctionnalités fourni par matplotlib. En particulier, l'axe datetime peut être personnalisé à l'aide de formateurs. Ces formateurs vous permettent de spécifier comment les étiquettes de graduation sur l'axe des x doivent être affichées.

Voici un exemple qui démontre l'utilisation des formateurs :

<code class="python">import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# Sample data with hourly timestamps
N = 30
drange = pd.date_range("2014-01", periods=N, freq="H")
np.random.seed(365)
values = {'values':np.random.randint(1,20,size=N)}
df = pd.DataFrame(values, index=drange)

# Create a plot with incorrect formatting
fig, ax = plt.subplots()
ax.plot(df.index, df.values)
ax.set_xticks(df.index)

# Use formatters to achieve the desired formatting
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))
ax.xaxis.set_minor_formatter(mdates.DateFormatter("%Y-%m"))
plt.xticks(rotation=90)

# Display the updated plot with the desired formatting
plt.show()</code>

Dans cet exemple, nous d'abord créez un exemple de DataFrame avec des horodatages horaires. Nous utilisons ensuite le DateFormatter de matplotlib.dates pour spécifier que les étiquettes de graduation sur l'axe des x doivent être au format "%Y-%m", qui représente uniquement l'année et le mois. Enfin, nous appelons xticks pour faire pivoter les étiquettes de graduation pour une meilleure lisibilité.

En mettant en œuvre cette approche, vous pouvez personnaliser efficacement le format de votre axe date-heure, en vous assurant qu'il correspond à vos exigences d'affichage souhaitées.

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