2019-01-02

highs_lows.py
帶注釋進(jìn)行解釋

#導(dǎo)入python標(biāo)準(zhǔn)庫(kù)內(nèi)的CSV模塊,用來(lái)處理CSV格式的文件,
import csv
#導(dǎo)入matplotlib包里面的pyplot模塊,用于可視化界面的搭建
from matplotlib import pyplot as plt
from datetime import datetime

#把天氣數(shù)據(jù)和源文件放一個(gè)文件夾里,并讀取death_valley_2014.csv
filename = 'death_valley_2014.csv'
#打開(kāi)CSV文件,實(shí)例化一個(gè)CSV模塊的reader閱讀器對(duì)象
with open(filename) as f:
    reader = csv.reader(f)
    #返回第一行的內(nèi)容,給header row
    header_row = next(reader)

#    print(header_row)

    dates,highs,lows=[],[],[]#提前生產(chǎn)三個(gè)空列表,分別用來(lái)儲(chǔ)存日期、最高氣溫、最低氣溫
    for row in reader:#遍歷閱讀器獲得的數(shù)據(jù),一行一行的提取出來(lái)
        try:#嘗試操作
            current_date = datetime.strptime(row[0],"%Y-%m-%d")#給取出來(lái)的數(shù)據(jù)第一列提取,并格式化為年-月-日
            high = int(row[1])#給取出來(lái)的數(shù)據(jù)第二列提取,把格式化為整數(shù)型
            low = int(row[3])#給取出來(lái)的數(shù)據(jù)第4列提取,把格式化為整數(shù)型
        except ValueError:#當(dāng)提取所需要數(shù)據(jù)報(bào)錯(cuò)時(shí),的處理辦法
            print(current_date,'missing data')
        else:#如提取數(shù)據(jù)為報(bào)錯(cuò),則按照以下方式執(zhí)行
            dates.append(current_date)#把取得的日期數(shù)據(jù)添加到dates的列表中
            highs.append(high)#把取得的最高氣溫?cái)?shù)據(jù)添加到highs的列表中
            lows.append(low)#把取得的最低氣溫?cái)?shù)據(jù)添加到lows的列表中


    #print(highs)
#設(shè)備屏幕分辨率DPI為128像素/英寸,屏幕比例10比6
fig = plt.figure(dpi = 128,figsize=(10,6))
#屏幕中橫軸用時(shí)間、縱軸用最高氣溫,并用紅色,透明度50%,alpha為0,完全透明,alpha為1,完全不透明,
plt.plot(dates,highs,c='red',alpha=0.5)
#屏幕中橫軸用時(shí)間、縱軸用最高氣溫,并用藍(lán)色,透明度50%
plt.plot(dates,lows,c='blue',alpha=0.5)
#fill_between方法接收一個(gè)X值、兩個(gè)Y值,在兩個(gè)Y值之間采用facecolor的藍(lán)色填充,透明度50%
plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.1)
#可視化圖標(biāo)標(biāo)題為“Daily high and low temperature,- 2014”,字體大小24號(hào)字號(hào)
plt.title('Daily high and low temperature,- 2014',fontsize=24)
#可視化X軸標(biāo)題為空,字體大小16號(hào)字號(hào)
plt.xlabel('',fontsize=16)
#調(diào)用fig.autofmt_xdate繪制傾斜的日期標(biāo)簽,避免日期顯示時(shí)候重疊
fig.autofmt_xdate()
#可視化Y軸標(biāo)題為‘Temperature (F)’,字體大小16號(hào)字號(hào)
plt.ylabel('Temperature (F)',fontsize = 16)
#tick_params設(shè)置刻度的樣式,axis代表實(shí)參X Y軸的刻度,both代表X Y軸都影響,which一共有三個(gè)參數(shù)major主刻度、minor次刻度、both主次刻度都顯示,labelsize標(biāo)簽尺寸大小
plt.tick_params(axis='both',which='major',labelsize=16)
#生成可視化圖標(biāo)
plt.show()

輸出時(shí)提示如下:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容