所以目前正在学习如何导入数据并在matplotlib中使用它,即使我有书中的确切代码,我也遇到了麻烦。
这是情节的样子,但我的问题是如何在x轴的起点和终点之间没有空格的地方找到它。
以下是代码:
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()
答案 0 :(得分:33)
在matplotlib 2.x中,边缘处设置了自动边距,这可确保数据在轴刺中很好地拟合。在这种情况下,在y轴上可能需要这样的余量。默认情况下,它以轴跨度为单位设置为0.05
。
要在x轴上将余量设置为0
,请使用
plt.margins(x=0)
或
ax.margins(x=0)
取决于具体情况。另请参阅the documentation。
如果您想要删除整个脚本中的边距,可以使用
plt.rcParams['axes.xmargin'] = 0
在脚本的开头(当然,y
也一样)。如果你想完全永久地摆脱边际,你可能想要改变matplotlib rc file中的相应线。
<小时/> 或者更改边距,使用
plt.xlim(..)
或ax.set_xlim(..)
手动设置轴的限制,以便不会留下空白区域。