泰勒圖繪制的核心思想是設計一個只有第一象限的極坐標,并將方差滴肿,相關系數(shù)進行捆綁岳悟,通過轉(zhuǎn)化為極坐標系坐標進行繪制。為了實現(xiàn)泰勒圖的繪制泼差,我設計了兩個函數(shù):
set_tayloraxes(fig, location=111) 和plot_taylor(axes, refsample, sample, args, *kwargs)
set_tayloraxes()函數(shù)用于建立一個泰勒圖的坐標系贵少,這個自定義函數(shù)一般情況下不建議修改,每一個參數(shù)都是經(jīng)過多次調(diào)試得到的堆缘,很可能牽一發(fā)動全身滔灶。因此,將繪圖部分的獨立成為了plot_taylor函數(shù)()吼肥,這部分函數(shù)較為簡單录平,目的就是將需要繪圖的數(shù)據(jù),轉(zhuǎn)換為極坐標系坐標缀皱,通過plot函數(shù)將散點打在泰勒圖上斗这,這個函數(shù)模塊較為簡單,可以根據(jù)自己的輸入數(shù)據(jù)情況進行調(diào)整啤斗。
下面介紹下函數(shù)的具體用法:
setup_axes(fig, rect=111)
輸入:
fig: 需要繪圖的figure
rect:圖的位置表箭,如111為1行1列第一個,122為1行2列第2個
輸出:
polar_ax:泰勒坐標系
plot_taylor(axes, refsample, sample, *args, **kwargs)
輸入:
axes : setup_axes返回的泰勒坐標系
refsample :參照樣本
sample :評估樣本
args, *kwargs :plt.plot()函數(shù)的相關參數(shù)钮莲,設置點的顏色免钻,形狀等等。
下面給出示例:
fig = plt.figure(figsize=(10,4))
ax1 = set_tayloraxes(fig, 121)
ax2 = set_tayloraxes(fig, 122)
x = np.linspace(0,10*np.pi,100)
data = np.sin(x)
data1 = data + 0.4*np.random.randn(len(x))
data2 = 0.3*data + 0.6*np.random.randn(len(x))
data3 = np.sin(x-np.pi/10)
d1 = plot_taylor(ax2,data,data1, c='b',marker = 'o')
d2 = plot_taylor(ax2,data,data2, c='r',marker = 'o')
d3 = plot_taylor(ax2,data,data3, c='g',marker = 'o')