Edición del formato de fecha de las etiquetas de marca del eje x en matplotlib

2 minutos de lectura

Estoy buscando editar el formato de las fechas en el eje x. La siguiente imagen muestra cómo aparecen en mi gráfico de barras de forma predeterminada. Me gustaría eliminar la repetición de ‘diciembre’ y ‘2012’ y solo tener los números de fecha reales a lo largo del eje x.

¿Alguna sugerencia sobre cómo puedo hacer esto?

ingrese la descripción de la imagen aquí

  • La respuesta aquí funcionó para mí: stackoverflow.com/questions/30133280/…

    – Mahdi

    21 sep.

En breve:

import matplotlib.dates as mdates
myFmt = mdates.DateFormatter('%d')
ax.xaxis.set_major_formatter(myFmt)

Muchos ejemplos en el sitio web de matplotlib. El que más uso es aquí

  • ¿Hay algún método alternativo sin usar el ax.xaxis pero usando plt.<command>?

    – 3kstc

    16 jun.

  • @ 3kstc Tal vez, pero no puedo imaginar una situación en la que confiar ambiguamente en la máquina de estado sea preferible al comando más explícito.

    – Pablo H.

    16 jun.

  • Para obtener una vista rápida de todos los formatos de fecha y hora posibles, utilice strftime.org.

    – La Importancia De Ser Ernesto

    08 feb.

  • Nota ax se define en la respuesta de @Robino

    – javerim

    24 ene.

  • plt.gca() devuelve el objeto Axes, que debe definir con anticipación

    – Pablo H.

    12 nov.


1644158886 650 Edicion del formato de fecha de las etiquetas de marca
robino

Si bien la respuesta dada por Paul H muestra la parte esencial, no es un ejemplo completo. Por otro lado el ejemplo matplotlib parece bastante complicado y no muestra cómo usar los días.

Entonces, para todos los que lo necesitan, aquí hay un ejemplo de trabajo completo:

from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter

myDates = [datetime(2012,1,i+3) for i in range(10)]
myValues = [5,6,4,3,7,8,1,2,5,4]
fig, ax = plt.subplots()
ax.plot(myDates,myValues)

myFmt = DateFormatter("%d")
ax.xaxis.set_major_formatter(myFmt)

## Rotate date labels automatically
fig.autofmt_xdate()
plt.show()

del paquete matplotlib.fechas como se muestra en este ejemplo el formato de fecha se puede aplicar a la etiqueta del eje y las marcas para el gráfico.

A continuación, he dado un ejemplo para etiquetar marcas de eje para multiparcelas

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd

df = pd.read_csv('US_temp.csv')
plt.plot(df['Date'],df_f['MINT'],label="Min Temp.")
plt.plot(df['Date'],df_f['MAXT'],label="Max Temp.")
plt.legend()
####### Use the below functions #######
dtFmt = mdates.DateFormatter('%b') # define the formatting
plt.gca().xaxis.set_major_formatter(dtFmt) # apply the format to the desired axis
plt.show()

Tan simple como eso

.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad