# -*- coding: gbk -*- import csv from matplotlib import pyplot as plt, ticker from datetime import datetime from matplotlib.ticker import MultipleLocator filename = 'changsha天气.csv' with open(filename) as f: reader = csv.reader(f) header_row = next(reader) #获取每天的最高气温数据 dates: [datetime] = [] higts, lows = [], [] for row in reader: try: current_date = datetime.strptime(row[0], '%Y-%m-%d') higt = int(row[1]) low = int(row[2]) except ValueError: print(current_date, '缺少信息') else: dates.append(current_date) higts.append(higt) lows.append(low) #根据数据绘制图形,设置窗口大小 fig = plt.figure(dpi=150, figsize=(12, 8)) #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='black', alpha=0.1) #设置图形格式 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.title('长沙2023全年气温折线图', fontsize=20, weight='bold', color='blue', fontstyle='italic', loc='center') plt.xlabel('', fontsize=16) #日期标签倾斜 fig.autofmt_xdate() plt.ylabel("温度", fontsize=16, loc='top') plt.xlabel("年-月", fontsize=16, loc='right') #设置刻度标记的大小 plt.tick_params(axis='both', which='major',direction='in', pad=3,labelsize=16) plt.savefig('长沙2023年气温折线图.png') plt.show()