美文网首页
2019-01-02

2019-01-02

作者: 天空的守候 | 来源:发表于2019-01-02 10:45 被阅读0次

    highs_lows.py
    带注释进行解释

    #导入python标准库内的CSV模块,用来处理CSV格式的文件,
    import csv
    #导入matplotlib包里面的pyplot模块,用于可视化界面的搭建
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    #把天气数据和源文件放一个文件夹里,并读取death_valley_2014.csv
    filename = 'death_valley_2014.csv'
    #打开CSV文件,实例化一个CSV模块的reader阅读器对象
    with open(filename) as f:
        reader = csv.reader(f)
        #返回第一行的内容,给header row
        header_row = next(reader)
    
    #    print(header_row)
    
        dates,highs,lows=[],[],[]#提前生产三个空列表,分别用来储存日期、最高气温、最低气温
        for row in reader:#遍历阅读器获得的数据,一行一行的提取出来
            try:#尝试操作
                current_date = datetime.strptime(row[0],"%Y-%m-%d")#给取出来的数据第一列提取,并格式化为年-月-日
                high = int(row[1])#给取出来的数据第二列提取,把格式化为整数型
                low = int(row[3])#给取出来的数据第4列提取,把格式化为整数型
            except ValueError:#当提取所需要数据报错时,的处理办法
                print(current_date,'missing data')
            else:#如提取数据为报错,则按照以下方式执行
                dates.append(current_date)#把取得的日期数据添加到dates的列表中
                highs.append(high)#把取得的最高气温数据添加到highs的列表中
                lows.append(low)#把取得的最低气温数据添加到lows的列表中
    
    
        #print(highs)
    #设备屏幕分辨率DPI为128像素/英寸,屏幕比例10比6
    fig = plt.figure(dpi = 128,figsize=(10,6))
    #屏幕中横轴用时间、纵轴用最高气温,并用红色,透明度50%,alpha为0,完全透明,alpha为1,完全不透明,
    plt.plot(dates,highs,c='red',alpha=0.5)
    #屏幕中横轴用时间、纵轴用最高气温,并用蓝色,透明度50%
    plt.plot(dates,lows,c='blue',alpha=0.5)
    #fill_between方法接收一个X值、两个Y值,在两个Y值之间采用facecolor的蓝色填充,透明度50%
    plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.1)
    #可视化图标标题为“Daily high and low temperature,- 2014”,字体大小24号字号
    plt.title('Daily high and low temperature,- 2014',fontsize=24)
    #可视化X轴标题为空,字体大小16号字号
    plt.xlabel('',fontsize=16)
    #调用fig.autofmt_xdate绘制倾斜的日期标签,避免日期显示时候重叠
    fig.autofmt_xdate()
    #可视化Y轴标题为‘Temperature (F)’,字体大小16号字号
    plt.ylabel('Temperature (F)',fontsize = 16)
    #tick_params设置刻度的样式,axis代表实参X Y轴的刻度,both代表X Y轴都影响,which一共有三个参数major主刻度、minor次刻度、both主次刻度都显示,labelsize标签尺寸大小
    plt.tick_params(axis='both',which='major',labelsize=16)
    #生成可视化图标
    plt.show()
    

    输出时提示如下:


    image.png

    相关文章

      网友评论

          本文标题:2019-01-02

          本文链接:https://www.haomeiwen.com/subject/ownalqtx.html