Creating different lines for CMIP5 models in an xy plot

From: Melissa Lazenby <M.Lazenby_at_nyahnyahspammersnyahnyah>
Date: Wed Jan 15 2014 - 05:28:07 MST

Hi All

I have created a xy plot of precipitation versus latitude for 44 CMIP5 models and the obs CMAP.
I have attached the image but I was wondering if there was any quick and efficient way to make a legend with different line patterns for each different model and the obs?
If someone could point me in the right direction that would be most useful.
Many thanks!

Kind Regards
Melissa

Code:
;************************************************
; zonal_1.ncl
;
; Concepts illustrated:
; - Drawing a zonal means plot
;************************************************
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
;************************************************
begin
;************************************************
; variable and file handling
;************************************************

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/era-int_cmap_pr_safrica_1979-1999_climDJF.nc","r")
  pr = in->precip(:,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_ACCESS1-0_historical_safrica_1979-1999_climDJF.nc","r")
  pr1 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_ACCESS1-3_historical_safrica_1979-1999_climDJF.nc","r")
  pr2 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_bcc-csm1-1_historical_safrica_1979-1999_climDJF.nc","r")
  pr3 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_bcc-csm1-1-m_historical_safrica_1979-1999_climDJF.nc","r")
  pr4 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_BNU-ESM_historical_safrica_1979-1999_climDJF.nc","r")
  pr5 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CanESM2_historical_safrica_1979-1999_climDJF.nc","r")
  pr6 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CCSM4_historical_safrica_1979-1999_climDJF.nc","r")
  pr7 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CESM1-BGC_historical_safrica_1979-1999_climDJF.nc","r")
  pr8 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CESM1-CAM5_historical_safrica_1979-1999_climDJF.nc","r")
  pr9 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CESM1-FASTCHEM_historical_safrica_1979-1999_climDJF.nc","r")
  pr10 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CESM1-WACCM_historical_safrica_1979-1999_climDJF.nc","r")
  pr11 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CMCC-CESM_historical_safrica_1979-1999_climDJF.nc","r")
  pr12 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CMCC-CM_historical_safrica_1979-1999_climDJF.nc","r")
  pr13 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CMCC-CMS_historical_safrica_1979-1999_climDJF.nc","r")
  pr14 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CNRM-CM5_historical_safrica_1979-1999_climDJF.nc","r")
  pr15 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_CSIRO-Mk3-6-0_historical_safrica_1979-1999_climDJF.nc","r")
  pr16 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_EC-EARTH_historical_safrica_1979-1999_climDJF.nc","r")
  pr17 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_FGOALS-g2_historical_safrica_1979-1999_climDJF.nc","r")
  pr18 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_FGOALS-s2_historical_safrica_1979-1999_climDJF.nc","r")
  pr19 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_FIO-ESM_historical_safrica_1979-1999_climDJF.nc","r")
  pr20 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_GFDL-CM3_historical_safrica_1979-1999_climDJF.nc","r")
  pr21 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_GFDL-ESM2G_historical_safrica_1979-1999_climDJF.nc","r")
  pr22 = in->pr(:,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_GFDL-ESM2M_historical_safrica_1979-1999_climDJF.nc","r")
  pr23 = in->pr(:,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_GISS-E2-H_p1_historical_safrica_1979-1999_climDJF.nc","r")
  pr24 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_GISS-E2-H-CC_p1_historical_safrica_1979-1999_climDJF.nc","r")
  pr25 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_GISS-E2-R_p1_historical_safrica_1979-1999_climDJF.nc","r")
  pr26 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_GISS-E2-R-CC_p1_historical_safrica_1979-1999_climDJF.nc","r")
  pr27 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_HadGEM2-AO_historical_safrica_1979-1999_climDJF.nc","r")
  pr28 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_HadGEM2-CC_historical_safrica_1979-1999_climDJF.nc","r")
  pr29 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_HadGEM2-ES_historical_safrica_1979-1999_climDJF.nc","r")
  pr30 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_inmcm4_historical_safrica_1979-1999_climDJF.nc","r")
  pr31 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_IPSL-CM5A-LR_historical_safrica_1979-1999_climDJF.nc","r")
  pr32 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_IPSL-CM5A-MR_historical_safrica_1979-1999_climDJF.nc","r")
  pr33 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_IPSL-CM5B-LR_historical_safrica_1979-1999_climDJF.nc","r")
  pr34 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MIROC4h_historical_safrica_1979-1999_climDJF.nc","r")
  pr35 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MIROC5_historical_safrica_1979-1999_climDJF.nc","r")
  pr36 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MIROC-ESM_historical_safrica_1979-1999_climDJF.nc","r")
  pr37 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MIROC-ESM-CHEM_historical_safrica_1979-1999_climDJF.nc","r")
  pr38 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MPI-ESM-LR_historical_safrica_1979-1999_climDJF.nc","r")
  pr39 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MPI-ESM-MR_historical_safrica_1979-1999_climDJF.nc","r")
  pr40 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MPI-ESM-P_historical_safrica_1979-1999_climDJF.nc","r")
  pr41 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_MRI-CGCM3_historical_safrica_1979-1999_climDJF.nc","r")
  pr42 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_NorESM1-M_historical_safrica_1979-1999_climDJF.nc","r")
  pr43 = in->pr(:,0,:,:)

  in = addfile("/mnt/nfs2/geog/ml382/melphd/zonal/pr_Amon_NorESM1-ME_historical_safrica_1979-1999_climDJF.nc","r")
  pr44 = in->pr(:,0,:,:)

  lat =in->lat

;************************************************
; data processing
;************************************************
  zave = dim_avg(pr)
 zave1 = dim_avg(pr1) ; calculate zonal ave
 zave2 = dim_avg(pr2)
 zave3 = dim_avg(pr3)
 zave4 = dim_avg(pr4)
 zave5 = dim_avg(pr5)
 zave6 = dim_avg(pr6)
 zave7 = dim_avg(pr7)
 zave8 = dim_avg(pr8)
 zave9 = dim_avg(pr9)
 zave10 = dim_avg(pr10)
 zave11 = dim_avg(pr11)
 zave12 = dim_avg(pr12)
 zave13 = dim_avg(pr13)
 zave14 = dim_avg(pr14)
 zave15 = dim_avg(pr15)
 zave16 = dim_avg(pr16)
 zave17 = dim_avg(pr17)
 zave18 = dim_avg(pr18)
 zave19 = dim_avg(pr19)
 zave20 = dim_avg(pr20)
 zave21 = dim_avg(pr21)
 zave22 = dim_avg(pr22)
 zave23 = dim_avg(pr23)
 zave24 = dim_avg(pr24)
 zave25 = dim_avg(pr25)
 zave26 = dim_avg(pr26)
 zave27 = dim_avg(pr27)
 zave28 = dim_avg(pr28)
 zave29 = dim_avg(pr29)
 zave30 = dim_avg(pr30)
 zave31 = dim_avg(pr31)
 zave32 = dim_avg(pr32)
 zave33 = dim_avg(pr33)
 zave34 = dim_avg(pr34)
 zave35 = dim_avg(pr35)
 zave36 = dim_avg(pr36)
 zave37 = dim_avg(pr37)
 zave38 = dim_avg(pr38)
 zave39 = dim_avg(pr39)
 zave40 = dim_avg(pr40)
 zave41 = dim_avg(pr41)
 zave42 = dim_avg(pr42)
 zave43 = dim_avg(pr43)
 zave44 = dim_avg(pr44)

 printVarSummary(zave)

 ;zave!0 = "lat"
 ;zave!1 = "time"
 ;zave&lat = lat
 ;zave&time= time
;************************************************
; plotting
;************************************************
  wks = gsn_open_wks("X11","zonal") ; Opens a ps file

   res = True
  res@tiXAxisString = "Precipitation (mm/month)" ; x-axis label
  res@tiYAxisString = "Latitude" ; y-axis label
  res@xyFillOn = True ; color on
  res@xyLineLabelsOn = True ; no contour line labels
  res@trXMinF = 0 ; min level
  res@trXMaxF = 500 ; max level
  res@trXSpacingF = 50 ; contour spacing

  res@lbLabelStride = 2 ; every other label
  res@gsnSpreadColors = True ; use full range of color map

  res@lbLabelBarOn = True
  res@gsnDraw = False ; do not draw the plot
  res@gsnFrame = False

  plot=gsn_csm_xy(wks,zave(0,:),pr&lat,res) ; plot zonal ave
  plot1 = gsn_csm_xy(wks,zave1(0,:),pr1&lat,res) ; create the U-wind plot
  plot2 = gsn_csm_xy(wks,zave2(0,:),pr2&lat,res)
  plot3 = gsn_csm_xy(wks,zave3(0,:),pr3&lat,res)
  plot4 = gsn_csm_xy(wks,zave4(0,:),pr4&lat,res)
  plot5 = gsn_csm_xy(wks,zave5(0,:),pr5&lat,res)
  plot6 = gsn_csm_xy(wks,zave6(0,:),pr6&lat,res)
  plot7 = gsn_csm_xy(wks,zave7(0,:),pr7&lat,res)
  plot8 = gsn_csm_xy(wks,zave8(0,:),pr8&lat,res)
  plot9 = gsn_csm_xy(wks,zave9(0,:),pr9&lat,res)
  plot10 = gsn_csm_xy(wks,zave10(0,:),pr10&lat,res)
  plot11 = gsn_csm_xy(wks,zave11(0,:),pr11&lat,res)
  plot12 = gsn_csm_xy(wks,zave12(0,:),pr12&lat,res)
  plot13 = gsn_csm_xy(wks,zave13(0,:),pr13&lat,res)
  plot14 = gsn_csm_xy(wks,zave14(0,:),pr14&lat,res)
  plot15 = gsn_csm_xy(wks,zave15(0,:),pr15&lat,res)
  plot16 = gsn_csm_xy(wks,zave16(0,:),pr16&lat,res)
  plot17 = gsn_csm_xy(wks,zave17(0,:),pr17&lat,res)
  plot18 = gsn_csm_xy(wks,zave18(0,:),pr18&lat,res)
  plot19 = gsn_csm_xy(wks,zave19(0,:),pr19&lat,res)
  plot20 = gsn_csm_xy(wks,zave20(0,:),pr20&lat,res)
  plot21 = gsn_csm_xy(wks,zave21(0,:),pr21&lat,res)
  plot22 = gsn_csm_xy(wks,zave22(0,:),pr22&lat,res)
  plot23 = gsn_csm_xy(wks,zave23(0,:),pr23&lat,res)
  plot24 = gsn_csm_xy(wks,zave24(0,:),pr24&lat,res)
  plot25 = gsn_csm_xy(wks,zave25(0,:),pr25&lat,res)
  plot26 = gsn_csm_xy(wks,zave26(0,:),pr26&lat,res)
  plot27 = gsn_csm_xy(wks,zave27(0,:),pr27&lat,res)
  plot28 = gsn_csm_xy(wks,zave28(0,:),pr28&lat,res)
  plot29 = gsn_csm_xy(wks,zave29(0,:),pr29&lat,res)
  plot30 = gsn_csm_xy(wks,zave30(0,:),pr30&lat,res)
  plot31 = gsn_csm_xy(wks,zave31(0,:),pr31&lat,res)
  plot32 = gsn_csm_xy(wks,zave32(0,:),pr32&lat,res)
  plot33 = gsn_csm_xy(wks,zave33(0,:),pr33&lat,res)
  plot34 = gsn_csm_xy(wks,zave34(0,:),pr34&lat,res)
  plot35 = gsn_csm_xy(wks,zave35(0,:),pr35&lat,res)
  plot36 = gsn_csm_xy(wks,zave36(0,:),pr36&lat,res)
  plot37 = gsn_csm_xy(wks,zave37(0,:),pr37&lat,res)
  plot38 = gsn_csm_xy(wks,zave38(0,:),pr38&lat,res)
  plot39 = gsn_csm_xy(wks,zave39(0,:),pr39&lat,res)
  plot40 = gsn_csm_xy(wks,zave40(0,:),pr40&lat,res)
  plot41 = gsn_csm_xy(wks,zave41(0,:),pr41&lat,res)
  plot42 = gsn_csm_xy(wks,zave42(0,:),pr42&lat,res)
  plot43 = gsn_csm_xy(wks,zave43(0,:),pr43&lat,res)
  plot44 = gsn_csm_xy(wks,zave44(0,:),pr44&lat,res)

  overlay(plot,plot1)
  overlay(plot1,plot2)
  overlay(plot2,plot3)
  overlay(plot3,plot4)
  overlay(plot4,plot5)
  overlay(plot5,plot6)
  overlay(plot6,plot7)
  overlay(plot7,plot8)
  overlay(plot8,plot9)
  overlay(plot9,plot10)
  overlay(plot10,plot11)
  overlay(plot11,plot12)
  overlay(plot12,plot13)
  overlay(plot13,plot14)
  overlay(plot14,plot15)
  overlay(plot15,plot16)
  overlay(plot16,plot17)
  overlay(plot17,plot18)
  overlay(plot18,plot19)
  overlay(plot19,plot20)
  overlay(plot20,plot21)
  overlay(plot21,plot22)
  overlay(plot22,plot23)
  overlay(plot23,plot24)
  overlay(plot24,plot25)
  overlay(plot25,plot26)
  overlay(plot26,plot27)
  overlay(plot27,plot28)
  overlay(plot28,plot29)
  overlay(plot29,plot30)
  overlay(plot30,plot31)
  overlay(plot31,plot32)
  overlay(plot32,plot33)
  overlay(plot33,plot34)
  overlay(plot34,plot35)
  overlay(plot35,plot36)
  overlay(plot36,plot37)
  overlay(plot37,plot38)
  overlay(plot38,plot39)
  overlay(plot39,plot40)
  overlay(plot40,plot41)
  overlay(plot41,plot42)
  overlay(plot42,plot43)
  overlay(plot43,plot44)

  draw(plot)

 legend = create "Legend" legendClass wks
    "vpXF" : 0.72 ; orientation on page
    "vpYF" : 0.55
    "vpWidthF" : 0.5 ; width
    "vpHeightF" : 0.1 ; height
    "lgPerimOn" : False ; no perimeter
    "lgItemCount" : 4 ; how many
    "lgLineLabelStrings" : (/"CMAP","ACCESS1-0,","ACCESS1-3","bcc-csm1-1","bcc-csm1-1-m"/) ; labels
    "lgLabelsOn" : False ; no default lables
    "lgLineLabelFontHeightF" : 0.015 ; font height
    "lgDashIndexes" : (/0,1,0,1/) ; line paters
    "lgLineColors" : (/"foreground","green","blue","red","yellow"/)
    "lgMonoLineLabelFontColor" : True ; one label color
  end create
  draw(legend)
  frame(wks)
  frame(wks)
;***********************************************
end

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk

zonal.000001.png
Received on Wed Jan 15 05:28:27 2014

This archive was generated by hypermail 2.1.8 : Sun Jan 19 2014 - 21:56:35 MST