直接上代码
import csv
from matplotlib import pyplot as plt
from datetime import datetime
filename = 'death_valley_2014.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
'''
for index, column in enumerate(header_row):
#enumerate(列表、字典、str); 返回每一项及其下标位置
print(index, column)
'''
#获取每天的最高气温数据
dates, higts, lows = [], [], []
for row in reader:
try:
current_date = datetime.strptime(row[0], '%Y-%m-%d')
higt = int(row[1])
low = int(row[3])
except ValueError:
print(current_date, 'missing data')
else:
dates.append(current_date)
higts.append(higt)
lows.append(low)
#print(higts)
#根据数据绘制图形,设置窗口大小
fig = plt.figure(dpi=128, figsize=(10, 6))
#plot 拆线图 alpha=(0.1 - 0.9)表示透明度,0为全透明,1为不透明
plt.plot(dates, higts, c= 'red', alpha=0.5)
plt.plot(dates, lows, c= 'blue', alpha=0.5)
#填充区间
plt.fill_between(dates, lows, higts, facecolor='blue', alpha=0.1)
#设置图形格式
title = "Daily high and low temperatures - 2014\nDeath Valley, CA"
plt.title(title, fontsize = 20)
plt.xlabel('', fontsize = 16)
#日期标签倾斜
fig.autofmt_xdate()
plt.ylabel("temperature (F)", fontsize = 16)
#设置刻度标记的大小
plt.tick_params(axis='both', which='major', labelsize=16)
plt.show()
运行: