Maison >développement back-end >Tutoriel Python >Comment résoudre les problèmes d'incompatibilité date/heure entre Pandas et Matplotlib ?
Incompatibilité entre les objets Pandas et Matplotlib Datetime
Lors de la tentative d'affichage des dates sur l'axe x d'un tracé linéaire Pandas Dataframe, des écarts peuvent survenir en raison de l'incompatibilité inhérente entre les utilitaires datetime Pandas et Matplotlib. Par conséquent, des visualisations problématiques peuvent survenir.
L'ajout d'un DateFormatter dans Matplotlib peut introduire des problèmes tels que des dates de début incorrectes et des étiquettes de jours de semaine incorrectes. En effet, Pandas utilise son propre format datetime, qui diffère de celui utilisé par Matplotlib.
Pour résoudre ce conflit, il est recommandé de s'abstenir de mélanger les objets datetime Pandas et Matplotlib. Alternativement, vous pouvez demander à Pandas de ne pas utiliser son format datetime par défaut en définissant le paramètre x_compat sur True lors du traçage.
Utilisation de Matplotlib pour le formatage de date
Pour le formatage de date avancé capacités, pensez à utiliser les fonctions natives de Matplotlib. Cette approche offre plus de flexibilité et de contrôle sur le formatage des dates sur l'axe des x.
<code class="python">import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as dates # Dataframe creation and formatting df = pd.DataFrame({'date':['20170527','20170526','20170525'],'ratio1':[1,0.98,0.97]}) df['date'] = pd.to_datetime(df['date']) # Matplotlib plotting using object-oriented API fig, ax = plt.subplots(figsize=(6,4)) ax.plot('date', 'ratio1', data=df) # Date formatting using Matplotlib functions ax.xaxis.set_major_locator(dates.DayLocator()) ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a')) # Additional formatting and display ax.invert_xaxis() fig.autofmt_xdate(rotation=0, ha="center") plt.show()</code>
Cet extrait de code démontre l'utilisation de l'API orientée objet de Matplotlib, qui fournit un contrôle plus granulaire sur le tracé et son éléments. En définissant explicitement la figure et les axes, un formatage personnalisé peut être appliqué à l'axe des x.
Vous pouvez personnaliser davantage le formatage de la date en ajustant les paramètres de l'objet DateFormatter, par exemple en spécifiant la chaîne de format de date, en activant rotation ou alignement, et contrôler le nombre de dates affiché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!