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

666
Vistas
¿Cómo puedo cambiar el eje x en matplotlib para que no haya espacios en blanco?

Así que actualmente estoy aprendiendo cómo importar datos y trabajar con ellos en matplotlib y tengo problemas aunque tengo el código exacto del libro.

ingrese la descripción de la imagen aquí

Así es como se ve la trama, pero mi pregunta es cómo puedo obtenerla donde no hay un espacio en blanco entre el inicio y el final del eje x.

Aquí está el código:

 import csv from matplotlib import pyplot as plt from datetime import datetime # Get dates and high temperatures from file. filename = 'sitka_weather_07-2014.csv' with open(filename) as f: reader = csv.reader(f) header_row = next(reader) #for index, column_header in enumerate(header_row): #print(index, column_header) dates, highs = [], [] for row in reader: current_date = datetime.strptime(row[0], "%Y-%m-%d") dates.append(current_date) high = int(row[1]) highs.append(high) # Plot data. fig = plt.figure(dpi=128, figsize=(10,6)) plt.plot(dates, highs, c='red') # Format plot. plt.title("Daily high temperatures, July 2014", fontsize=24) plt.xlabel('', fontsize=16) fig.autofmt_xdate() plt.ylabel("Temperature (F)", fontsize=16) plt.tick_params(axis='both', which='major', labelsize=16) plt.show()
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Hay un margen automático establecido en los bordes, lo que garantiza que los datos encajen bien dentro de los lomos del eje. En este caso, tal margen probablemente se desee en el eje y. De forma predeterminada, se establece en 0.05 en unidades de amplitud de eje.

Para establecer el margen en 0 en el eje x, utilice

 plt.margins(x=0)

o

 ax.margins(x=0)

dependiendo del contexto. Consulte también la documentación .

En caso de que quiera deshacerse del margen en todo el script, puede usar

 plt.rcParams['axes.xmargin'] = 0

al comienzo de su secuencia de comandos (lo mismo para y , por supuesto). Si desea deshacerse del margen por completo y para siempre, es posible que desee cambiar la línea correspondiente en el archivo rc de matplotlib :

 axes.xmargin : 0 axes.ymargin : 0

Ejemplo

 import seaborn as sns import matplotlib.pyplot as plt tips = sns.load_dataset('tips') fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4)) tips.plot(ax=ax1, title='Default Margin') tips.plot(ax=ax2, title='Margins: x=0') ax2.margins(x=0)

ingrese la descripción de la imagen aquí


Alternativamente, use plt.xlim(..) o ax.set_xlim(..) para establecer manualmente los límites de los ejes de modo que no queden espacios en blanco.

over 4 years ago · Santiago Trujillo Denunciar

0

Si solo desea eliminar el margen de un lado pero no del otro, por ejemplo, eliminar el margen de la derecha pero no de la izquierda, puede usar set_xlim() en un objeto de ejes matplotlib.

 import seaborn as sns import matplotlib.pyplot as plt import math max_x_value = 100 x_values = [i for i in range (1, max_x_value + 1)] y_values = [math.log(i) for i in x_values] fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4)) sn.lineplot(ax=ax1, x=x_values, y=y_values) sn.lineplot(ax=ax2, x=x_values, y=y_values) ax2.set_xlim(-5, max_x_value) # tune the -5 to your needs

ingrese la descripción de la imagen aquí

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