本文主要為筆者學習kaggle實戰項目“Daily sea ice exten data”時心得筆記,項目主要利用NSIDC提供的每日海冰面積(sea ice extent)數據進行數據分析,學習源代碼為Mathew Savage:visualisation of sea-ice data,僅供交流參考。
1.庫的載入
1.1warnings庫
當程序執行時會有warning發生,但這實際并不影響程序進行,因此可以導入warnings庫來忽略。
import warnings
warnings.filterwarnings('ignore')
1.2數據處理相關庫
除了numpy和panda,因為該數據為時間序列,因此載入datetime庫
import numpy as np
import pandas as pd
import datetime as dt
1.3 繪圖相關庫
import matplotlib.pyplot as plt
import seaborn as sns
plt.set.use('ggplot')
sns.set_style('white')
%matplotlib inlie
除了載入庫外,習慣在開始對繪圖風格進行設置。這里plt風格設置為ggplot,而sns的背景設置為純白色。
%matplotlib inlie 命令可以讓圖片直接嵌入就jupter notebook,不用重復輸入plt.show()
1.4 迭代器
itertools是python自帶的標準庫,提供了一些生成迭代對象的函數。這里因為要循環繪圖各年的情況所以使用了迭代器。
import itertools
常用迭代函數包括count,cycle,repeat產生無限迭代循環對象,使用方法如* itertools.count(1), itertools.cyle('ABC'), itertools.repeat('A',10) ,itertool.chain('ABC','XYZ'),itertool.groupby(‘AAABBBCCAAA’)*
詳細用法可見廖雪峰python教程:itertools
import itertools
natuals = itertools.count(1)
for n in natuals:
print n
1.5 高級繪圖
import matplotlib.dates as mdates
from matplotlib.offsetbox import AnchoredText
因為繪制圖形與時間有關,導入matplotlib中加強版時間序列處理工具matplotlib.dates,相關用法在使用時具體說明
matplotlib.offsetbox.AnchoredText 用于在圖中增加標注,代碼中的使用為
axarr[0].add_artist(AnchoredText('Northern Hemisphere', loc=3))
axarr[1].add_artist(AnchoredText('Southern Hemisphere', loc=2))
其中loc表示標準的位置:
'upper right' : 1,
'upper left' : 2,
'lower left' : 3,
'lower right' : 4,
'right' : 5,
'center left' : 6,
'center right' : 7,
'lower center' : 8,
'upper center' : 9,
'center' : 10
效果:
該部分完整代碼
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pandas as pd
import datetime as dt
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('ggplot')
sns.set_style('white')
import itertools
import matplotlib.dates as mdates
from matplotlib.offsetbox import AnchoredText
%matplotlib inline