python讀csv格式文檔並用matplotlib繪制圖表


  • import csv
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    fileName = 'sitka_weather_07-2014.csv'
    with open(fileName) as f:
        reader = csv.reader(f)
        header_row = next(reader)
        # print(header_row)
    
        # for index, column_header in enumerate(header_row):  # 在同時需要index和value值的時候可以使用 enumerate
        #     # print(index, column_header)
    
        dates,hights = [], []
    
        for row in reader:
            current_date = datetime.strptime(row[0], '%Y-%m-%d')
            dates.append(current_date)
            hights.append(int(row[1]))
    
        print(hights)
    
        fig = plt.figure(dpi=128, figsize=(10, 6))
        plt.plot(dates, hights, c='red')
        # 設置圖形的格式
        plt.title("Dialy high temperatures,July 2014", fontsize=24)
        plt.xlabel('', fontsize=16)
        fig.autofmt_xdate()
        plt.ylabel("Temperature (F)", fontsize=16)
        plt.tick_params(axis='both', which='major', labelsize=16)
        plt.savefig("temperature.png", bbox_inches='tight')
        plt.show()
    

       運行結果

  • temperature.png
  • 現在開始讀取全年並展示,代碼如下:
    import csv
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    fileName = 'sitka_weather_2014.csv'
    with open(fileName) as f:
        reader = csv.reader(f)
        header_row = next(reader)
    
        dates,hights, lows = [], [], []
    
        for row in reader:
            current_date = datetime.strptime(row[0], '%Y-%m-%d')
            dates.append(current_date)
            hights.append(int(row[1]))
            lows.append(int(row[3]))
    
        fig = plt.figure(dpi=128, figsize=(10, 6))
        plt.plot(dates, hights, c='red', alpha=0.5)
        plt.plot(dates, lows, c='blue', alpha=0.5)
        plt.fill_between(dates, hights, lows, facecolor='blue', alpha=0.1)
        # 設置圖形的格式
        plt.title("Dialy high temperatures, 2014", fontsize=24)
        plt.xlabel('', fontsize=16)
        fig.autofmt_xdate()
        plt.ylabel("Temperature (F)", fontsize=16)
        plt.tick_params(axis='both', which='major', labelsize=16)
        plt.savefig("temperature.png", bbox_inches='tight')
        plt.show()
    

      運行效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM