首页 > 其他 > 详细

绘制气温图表

时间:2020-08-06 12:24:54      阅读:63      评论:0      收藏:0      [点我收藏+]
# incoding=gbk

import csv
from datetime import datetime

from matplotlib import pyplot as plt

# 从文件中获取日期、最高气温和最低气温
filename = sitka_weather_2018_full.csv
with open(filename) as f:
    """
    调用csv.reader(),并将前面存储的文件对象作为实参传递给它,从而创建一个与该
    文件相关联的阅读器(reader)对象。我们将这个阅读器对象存储在reader中。
    模块csv包含函数next(),调用它并将阅读器对象传递给它时,它将返回文件中的下一行。
    """
    reader = csv.reader(f)
    header_row = next(reader)
    # print(header_row)
    
    for index, column_header in enumerate(header_row):
        print(index, column_header)
        
    dates, highs, lows = [], [], []
    for row in reader:
        """错误检查,使用try-except-else代码块来处理数据缺失的问题"""
        try:
            """
            方法strptime(),将包含所需日期的字符串作为第一个实参,第二个实参告诉
            Python如何设置日期的格式
            %A 星期的名称,如Monday,大写全称,小写简称
            %B 月份名,如January,大写全称,小写简称 
            %m 用数字表示的月份(01~12) 
            %d 用数字表示月份中的一天(01~31) 
            %Y 四位的年份,如2015 
            %y 两位的年份,如15 
            %H 24小时制的小时数(00~23) 
            %I 12小时制的小时数(01~12) 
            %p am或pm 
            %M 分钟数(00~59) 
            %S 秒数(00~61)
            """
            current_date = datetime.strptime(row[2], "%Y-%m-%d")
            high = int(row[8])
            low = int(row[9])
        except ValueError:
            print(current_date, "missing data")
        else:
            dates.append(current_date)
            highs.append(high)
            lows.append(low)
            
    #print(dates)
    #print(highs)
    #print(lows)

# 根据数据绘制图形
fig = plt.figure(dpi= 128, figsize=(10, 6))
"""
实参alpha指定颜色的透明度。Alpha值为0表示完全透明,1(默认设置)表示完全不
透明。通过将alpha设置为0.5,可让红色和蓝色折线的颜色看起来更浅。
"""
plt.plot(dates, highs, c=red, alpha=0.5)
plt.plot(dates, lows, c=blue, alpha=0.5)
"""
方法fill_between(),它接受一个x值系列和两个y值系列,并填充两个y值系列之间的空间
"""
plt.fill_between(dates, highs, lows, facecolor=blue, alpha=0.1)

# 设置图形的格式
title = "Daily high and low temperatures, 2018/1/1~2019/2/11"
title += "\nSITKA AIRPORT, AK US"
plt.title(title, fontsize=20)
plt.xlabel(Daily, fontsize=16)
"""调用fig.autofmt_xdate()来绘制斜的日期标签,以免它们彼此重叠"""
fig.autofmt_xdate()
plt.ylabel("Temperature(F)", fontsize=16)
plt.tick_params(axis=both, which="major", labelsize=16)

plt.show()

 

绘制气温图表

原文:https://www.cnblogs.com/merryconei123/p/13444864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!