• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

479
Views
¿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 3 years ago · Santiago Trujillo
2 answers
Answer question

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 3 years ago · Santiago Trujillo Report

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 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error