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()

       運行結果python

  • 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()

      運行效果:app

相關文章
相關標籤/搜索