【发布时间】:2018-02-23 10:19:25
【问题描述】:
我使用 matplotlib 和 pyplot 在 Python 中创建了温度图,但无法弄清楚如何为 x 轴上的第一个值和最后一个标签添加日期标签。我尝试了 DayLocator 的多次迭代,但无济于事。我想保持实际绘图的范围相同,并希望保持每天的小刻度线与绘图enter image description here 一样,因此线图的开头或结尾没有空白空间。数据从 06/01 到 08/30。这是我的完整代码,除了 06/01 的第一个刻度和 08/30 的最后一个刻度没有显示之外,它完美地绘制:
import csv
import pylab
from datetime import datetime
from matplotlib import pyplot as plt
import matplotlib.dates as mdates
filename ='Summer17.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
dates_list, temperature, dewpoint = [], [], []
for row in reader:
if len(row) < 4:
continue
datestring = ("2017/{0:}/{1:} {2:}".format(*row))
date_obj = datetime.strptime(datestring, "%Y/%m/%d %H:%M")
dates_list.append(date_obj)
temp = float(row[3])
temperature.append(temp)
fig = plt.figure(dpi=128, figsize=(10,6))
ax = fig.add_axes([0.1, 0.1, 0.85, 0.75])
plt.plot(dates_list,temperature, linewidth=0.5, c='red')
plt.xlim(dates_list[1],dates_list[-1])
myFmt = mdates.DateFormatter('%m/%d')
months = mdates.MonthLocator()
days1 = mdates.DayLocator(bymonthday=(1,15)) # every Day
dayss = mdates.DayLocator()
ax.xaxis.set_major_formatter(myFmt)
ax.xaxis.set_major_locator(days1)
ax.xaxis.set_minor_locator(dayss)
【问题讨论】:
标签: python matplotlib plot axis axis-labels