[PYTHON] Reformatez l'axe des temps du graphique de la série chronologique des pandas avec matplotlib

Quand j'ai set_major_formatter () après df.plot (), je souffrais du problème que la notation année et mois de xtick était cassée, mais je l'ai résolu, alors j'ai pris une note.

supposition

pandas:0.24.2 matplotlib:3.1.0

Préparation des données

import pandas as pd
import numpy as np

N = 100
x = np.random.rand(N)
y = x**2

df = pd.DataFrame(
    index=pd.date_range('2020-01-01', periods=N, freq='D'),
    data=dict(x=x, y=y)
)
df.head()

image.png

Aucun cas de problème

#Utiliser la fonction de tracé des pandas
df.plot()

image.png Si l'index DataFrame est DatetimeIndex, il formatera automatiquement la coche. Si ce format est correct, c'est très bien.

Cas problématique

import matplotlib.dates as mdates

#Utiliser la fonction de tracé des pandas
ax = df.plot()

#Reformater
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))

image.png

L'affichage de% Y est étrange. Qu'est-ce que 0051 ans ... D'après le site ci-dessous, il semble que l'utilitaire datetime de pandas et matplotlib soit incompatible. https://code-examples.net/ja/q/2a2a615

Solution

import matplotlib.dates as mdates

# x_Passez l'option compat. Cela supprime l'ajustement automatique des graduations.
ax = df.plot(x_compat=True)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))

image.png

% Y est maintenant correctement en 2020!

X_compat signifie-t-il x_compatibility? Selon la documentation officielle, x_compat est un paramètre qui supprime l'ajustement automatique des graduations. https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#suppressing-tick-resolution-adjustment

S'il y a une manière plus intelligente, j'apprécierais que vous puissiez m'apprendre.

Recommended Posts

Reformatez l'axe des temps du graphique de la série chronologique des pandas avec matplotlib
Diagramme de séries chronologiques / Matplotlib
Tracer CSV de données de séries temporelles avec une valeur unixtime en Python (matplotlib)
Tracez l'indice boursier moyen Nikkei avec des pandas
Alignez la taille de la barre de couleurs avec matplotlib
Tracez plusieurs cartes et données en même temps avec matplotlib de Python
Agrégation pratique de séries chronologiques avec TimeGrouper de pandas
Augmentez la taille de la police du graphique avec matplotlib
Voir les détails des données de séries chronologiques dans Remotte
La base de la théorie des graphes avec l'animation matplotlib
Visualisez le comportement de l'algorithme de tri avec matplotlib
Conversion de type de plusieurs colonnes de pandas DataFrame avec un type en même temps
Graphique 2 axes avec Matplotlib
Graphique 3D avec matplotlib
Calculer la somme des valeurs uniques par tabulation croisée des pandas
Dessinez sur Jupyter en utilisant la fonction de tracé des pandas
Ajustez le rapport de plusieurs chiffres avec le gridspec de Matplotlib
Calculez le décalage horaire entre deux colonnes avec Pandas DataFrame
Exécutons la commande à temps avec le bot discord
[En 3 lignes] Tracez la pyramide des âges (graphique à barres du groupe d'âge / sexe) avec les pandas seuls
Bar plot empilable avec matplotlib
Visualisons le nombre de personnes infectées par le virus corona avec matplotlib
[Python] Tracer des données de séries chronologiques
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Changer le style de matplotlib
J'ai écrit le fonctionnement de base de matplotlib dans Jupyter Lab
Animez les valeurs alpha et bêta des principales valeurs boursières mondiales avec pandas + matplotlib
Comment tracer beaucoup de légendes en changeant la couleur du graphique en continu avec matplotlib
Le pouvoir des pandas: Python
Calcul de base des pandas pour profiter de Hakone Ekiden tout en rivalisant avec les meilleurs membres de tous les temps
Gérez le chevauchement lors du dessin d'un diagramme de dispersion avec une grande quantité de données (Matplotlib, Pandas, Datashader)
Lire les coordonnées du tracé sur le graphe avec Python-matplotlib (super débutant)
Comment extraire des fonctionnalités de données de séries chronologiques avec les bases de PySpark
Mettre en forme le fichier CSV de "Fête nationale" du Cabinet Office avec des pandas
J'ai écrit le fonctionnement de base de Pandas dans Jupyter Lab (partie 1)
[Statistiques] [Analyse des séries chronologiques] Tracez le modèle ARMA et saisissez la tendance.
J'ai écrit le fonctionnement de base de Pandas dans Jupyter Lab (partie 2)
Calcul de la fidélité des clients dans les séries chronologiques
Créer une animation de tracé avec Python + Matplotlib
Tracez la propagation du nouveau virus corona
Prédiction de séries chronologiques facile avec Prophet
Extraire la valeur maximale avec les pandas.
Traçage de données polyvalent avec pandas + matplotlib
Traiter le résultat de% time,% timeit
L'intrigue de séries temporelles a commencé ~ édition python ~
Différenciation des données de séries chronologiques (discrètes)
Analyse des séries chronologiques 3 Prétraitement des données des séries chronologiques
Couleur en continu avec le diagramme de dispersion matplotlib
À propos de la taille des points dans matplotlib
Cas utilisant un tracé de pandas, cas utilisant un tracé matplotlib (pur)
Effectuer un tracé de probabilité normale logarithmique avec Python, matplotlib
Ajustez la largeur du bac de manière nette et précise avec l'histogramme de matplotlib et seaborn
J'ai fait une erreur en récupérant la hiérarchie avec MultiIndex of pandas
Prédiction des données de séries chronologiques par projection simplex
[Python] Définissez la plage du graphique avec matplotlib
Ajustez l'espacement entre les chiffres avec Matplotlib
Prédire les données de séries chronologiques avec un réseau neuronal