python讀取txt天氣數據並使用matplotlib模塊繪圖


  天氣數據可以從網上下載,這個例子的數據是從http://data.cma.cn/下載而來的。

  下載的數據裝在txt文件中。

  

  里面包含了12年開始北京的月最低和最高溫度。

  讀取數據:

1 with open('S201812261702093585500.txt') as file_object:
2     lines=file_object.readlines()

  將txt中的數據逐行存到列表lines里 lines的每一個元素對應於txt中的一行。然后將每個元素中的不同信息提取出來:

1 file1=[] 
2 row=[]
3 for line in lines:
4     row=line.split() #指定空格作為分隔符對line進行切片
5     file1.append(row)

  這樣,所有的信息都存在了中file1中,file1嵌套了列表row,file1中的每一元素包含了一個列表,所有的信息都被分隔開了。

  可以print(file1)看一下:

  需要使用第2、3、4、5列的年、月、最低溫度、最高溫度信息,將它們分別提取出來。

 1 date=[]
 2 highs=[]
 3 lows=[]
 4 for row1 in file1:
 5     a=row1[1]+"-"+row1[2] #合並年月
 6     date.append(a) 7 for row1 in file1:
 8     lows.append(row1[3])
 9     highs.append(row1[4])

  在讀數據時將表頭也讀進去了,刪除列表第一個元素

1 del highs[0]
2 del lows[0]
3 del date[0]

  現在,日期和溫度數據被分別存在date、highs、lows三個列表里,但是還不能直接使用,因為提取出來的都是字符型數據,轉換數據格式為int型:

1 int_highs=[]
2 for str_h in highs:
3     a=int(float(str_h))
4     int_highs.append(a)
5 
6 int_lows=[]
7 for str_l in lows:
8     a=int(float(str_l))
9     int_lows.append(a)

  將日期轉換為日期格式,需要使用datetime模塊,在文件開頭加上from datetime import datetime,:

1 from datetime import datetime
2 dates=[]
3 for a in date:
4     current_dates=datetime.strptime(a,'%Y-%m')
5     dates.append(current_dates)

  導入matplotlib模塊

1 from matplotlib import pyplot as plt
2 import matplotlib.dates as mdates

  下面就准備畫圖啦:

 1 fig=plt.figure(figsize=(10,6))
 2 ax1=fig.add_subplot(111) # 將畫面分割為1行1列選第一個
 3 ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))#設置橫軸為日期格式
 4 ax1.plot(dates,int_highs,c="red")#畫最高溫度,顏色紅
 5 ax1.plot(dates,int_lows,c="blue")#畫最低溫度,顏色藍
 6 fig.autofmt_xdate()
 7 ax1.set_title("Daily Max and Min TemperatureC",fontsize=14)#標題
 8 ax1.set_ylabel("Temperature  (℃)")#縱軸label
 9 ax1.tick_params(direction='in')#刻度向里
10 plt.show()

  畫好的圖:

 

 

  


免責聲明!

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



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