Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

324
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda