Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

325
Vistas
el eje x se transforma en flotadores

Estoy tratando de trazar mis datos agrupados por año y, para cada año, quiero contar la cantidad de usuarios. A continuación, acabo de transformar la columna de fecha de flotante a entero.

esta es mi parcela ingrese la descripción de la imagen aquí

Si ve el eje x, mi indicador de año parece haberse convertido en un flotador y cada indicador está separado por 0,5 puntos.

¿Cómo hago esto puramente un número entero?


Cambiar el groupby tiene el mismo resultado: ingrese la descripción de la imagen aquí


las marcas todavía están separadas por 2 espacios después de convertir la columna del año a un formato de cadena

 df['year'] = df['year'].astype(str)

: ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

La expectativa de que el uso de datos enteros llevará a un eje matplotlib a mostrar solo números enteros no está justificada. Al final, cada eje es un eje flotante numérico.

Los ticks y las etiquetas están determinados por localizadores y formateadores. Y matplotlib no sabe que desea trazar solo números enteros.

Algunas posibles soluciones:

Dígale al localizador predeterminado que use números enteros

El localizador predeterminado es un AutoLocator , que acepta un atributo integer . Por lo tanto, puede establecer este atributo en True :

 ax.locator_params(integer=True)

Ejemplo:

 import pandas as pd import numpy as np import matplotlib.pyplot as plt data = pd.DataFrame({"year" : [2010,2011,2012,2013,2014], "count" :[1000,2200,3890,5600,8000] }) ax = data.plot(x="year",y="count") ax.locator_params(integer=True) plt.show()

Usando un localizador fijo

Puede marcar solo los años presentes en el marco de datos usando ax.set_ticks() .

 import pandas as pd import numpy as np import matplotlib.pyplot as plt data = pd.DataFrame({"year" : [2010,2011,2012,2013,2014], "count" :[1000,2200,3890,5600,8000] }) data.plot(x="year",y="count") plt.gca().set_xticks(data["year"].unique()) plt.show()

Convertir año hasta la fecha

Puede convertir la columna del año en una fecha. Para las fechas, se realiza automáticamente un etiquetado mucho más agradable.

 import pandas as pd import numpy as np import matplotlib.pyplot as plt data = pd.DataFrame({"year" : [2010,2011,2012,2013,2014], "count" :[1000,2200,3890,5600,8000] }) data["year"] = pd.to_datetime(data["year"].astype(str), format="%Y") ax = data.plot(x="year",y="count") plt.show()

En todos los casos obtendrías algo como esto:

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

import matplotlib.pyplot as plt # Use min and max to get the range of years to use in axis ticks year_min = df['year'].min() year_max = df['year'].max() df['year'] = df['year'].astype(str) # Prevents conversion to float plt.xticks(range(year_min, year_max, 1)) # Sets plot ticks to years within range

¡Espero que esto ayude!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda