2009-12-16

畫 Multple Axis 的圖

如果想把不同組的資料畫到同一張圖上,並清楚非示兩組資料的不同,我們常常會需要畫不同的 y軸。而 IDL 也可以做這件事。


例如上面這張圖,這是我修 HHT 概論時的期末作業會用到的一張圖,資料點是由 1856 年開始全球的平均氣溫,做完 EEMD 拆解之後,如果把 residual 當作是溫度上昇的趨勢,則可以畫出圖中的紅線。而把這個趨勢對時間做一次微分,可以得到溫度上昇的速率,也就是藍色線。但由於這兩者的尺度差太大,所以需要多一條座標軸。方法如下:
首先要要畫第一張圖 (data)

  • plot,t,x,ystyle=8,xtitle='year',ytitle='Temperature',position=[0.1,0.1,0.9,0.95],xrange=[1850,2015],xstyle=1
其中 ystyle=8 就是把右邊的 y軸消掉,先留空白。再來,把 trend 也畫上去:
  • oplot,t,trend,color=1,thick=3
接下來就是要做出右邊的 y 軸了。要用 axis 的指令:
  • axis,yaxis=1,yrange=[-0.001,0.011],/save,ytitle='Temperature Increasing Rate',ystyle=1
axis 就是畫出座標軸的意思,也可以另外加上 title,這樣就成功了。最後,再把另一組 data (溫度上升趨勢的微分) 畫上去:
  • oplot,t,ddt,color=2,thick=3
當然,圖中還有一些 Legend,這個是手動畫上去和手動寫字上去的。IDL 似乎沒辦法自動幫你畫 Legend?

沒有留言: