<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Dear PyNgl users,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’m trying to plot a vertical cross section with regional model data on the native terrain-following vertical coordinate, in my case, that coordinate is sigma height. The levels are *not* equally spaced. However, when I plot the data, the
 vertical spacing between the levels is by default assumed to be equally spaced, at least it appears that way. Please see attached cross section plot, and in particular, the values on the vertical axis. How can I plot this properly such that the levels are
 not assumed to be equally spaced? Below is my plotting code where I use sfYArray to define my vertical axis/increment. I thought this approach with sfYArray would accommodate the unequal spacing, but it does not. I’ve explored a bit trYAxisType = IrregularAxis,
 but have been unsuccessful in getting it work.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Also, here are my vertical levels stored in the variable “yl” used in the plotting routine.<o:p></o:p></p>
<p class="MsoNormal">[5.0, 15.0, 26.0, 38.0, 50.0, 62.0, 75.0, 89.0, 104.0, 120.0, 137.0, 155.0, 174.0, 195.0, 218.0, 242.0, 267.0, 294.0, 323.0, 353.0, 385.0, 419.0, 455.0, 494.0, 535.0, 578.0, 624.0, 673.0, 725.0, 780.0, 838.0, 900.0, 966.0, 1036.0, 1111.0,
 1195.0, 1288.0, 1391.0, 1506.0, 1634.0, 1776.0, 1934.0, 2110.0, 2306.0, 2525.0, 2769.0, 3040.0, 3342.0, 3678.0, 4052.0, 4469.0, 4933.0, 5449.0, 6023.0, 6662.0, 7373.0, 8164.0, 9045.0, 10026.0, 11118.0, 12333.0, 13685.0, 15190.0, 16865.0, 18729.0, 20804.0,
 23114.0, 25685.0, 28546.0, 31730.0]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks for the help,<o:p></o:p></p>
<p class="MsoNormal">Matt  <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">def map_vslice(pname,plabel,cvarone,cvartwo,u,v,xv,xl,yv,yl,yd):<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    wks_type = "png"<o:p></o:p></p>
<p class="MsoNormal">    wks = Ngl.open_wks(wks_type, pname)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    #cmap                        = Ngl.read_colormap_file("WhiteBlueGreenYellowRed")<o:p></o:p></p>
<p class="MsoNormal">    #cmap                        = Ngl.read_colormap_file("MPL_PuOr")<o:p></o:p></p>
<p class="MsoNormal">    #cmap                        = Ngl.read_colormap_file("MPL_PuBu")<o:p></o:p></p>
<p class="MsoNormal">    cmap                        = Ngl.read_colormap_file("MPL_Greens")<o:p></o:p></p>
<p class="MsoNormal">    #cmap                        = cmap[::-1,:]<o:p></o:p></p>
<p class="MsoNormal">    #cmap                        = Ngl.read_colormap_file("cmocean_tempo")<o:p></o:p></p>
<p class="MsoNormal">    #cmap                        = Ngl.read_colormap_file("WhiteYellowOrangeRed")<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    cfres                       = Ngl.Resources()<o:p></o:p></p>
<p class="MsoNormal">    cfres.nglFrame              = False<o:p></o:p></p>
<p class="MsoNormal">    cfres.nglDraw               = False<o:p></o:p></p>
<p class="MsoNormal">    clres                       = Ngl.Resources()<o:p></o:p></p>
<p class="MsoNormal">    clres.nglFrame              = False<o:p></o:p></p>
<p class="MsoNormal">    clres.nglDraw               = False<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    ylimit                      = max(yl) #)-12<o:p></o:p></p>
<p class="MsoNormal">    cfres.sfXArray              = xv<o:p></o:p></p>
<p class="MsoNormal">    cfres.sfYArray              = yl<o:p></o:p></p>
<p class="MsoNormal">    clres.sfXArray              = xv<o:p></o:p></p>
<p class="MsoNormal">    clres.sfYArray              = yl<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    #For Y axis<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLMode              = "Explicit"<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLLabelFont         = "times-roman"<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLValues            = yl[::5]<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLLabels            = yl[::5]<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLMinorOn           = True<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLMinorValues       = yl<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    #For X axis<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmXBMode              = "Explicit"<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmXBLabelFont         = "times-roman"<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmXBValues            = xv[::20]<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmXBLabels            = xl[::20]<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmXBMinorOn           = True<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmXBMinorValues       = xv[::5]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    cfres.tmXBLabelFontHeightF  = 0.006<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLLabelFontHeightF  = 0.006<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    clres.cnFillOn              = False<o:p></o:p></p>
<p class="MsoNormal">    clres.cnLinesOn             = True<o:p></o:p></p>
<p class="MsoNormal">    clres.cnLineColor           = "Black"<o:p></o:p></p>
<p class="MsoNormal">    clres.cnLineThicknessF      = 3<o:p></o:p></p>
<p class="MsoNormal">    clres.cnLineLabelsOn        = True<o:p></o:p></p>
<p class="MsoNormal">    clres.cnLineLabelFontHeightF= 0.007<o:p></o:p></p>
<p class="MsoNormal">    clres.cnLineLabelPerimOn    = False<o:p></o:p></p>
<p class="MsoNormal">    clres.cnLineLabelBackgroundColor = -1<o:p></o:p></p>
<p class="MsoNormal">    clres.cnInfoLabelOn         = False<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    cfres.tmXBLabelFontHeightF  = 0.007<o:p></o:p></p>
<p class="MsoNormal">    cfres.tmYLLabelFontHeightF  = 0.007<o:p></o:p></p>
<p class="MsoNormal">    cfres.tiYAxisString         = "Sigma-Height/m"<o:p></o:p></p>
<p class="MsoNormal">    cfres.tiXAxisString         = "Latitude/deg"<o:p></o:p></p>
<p class="MsoNormal">    cfres.tiXAxisFontHeightF    = 0.012<o:p></o:p></p>
<p class="MsoNormal">    cfres.tiYAxisFontHeightF    = 0.012<o:p></o:p></p>
<p class="MsoNormal">    cfres.tiMainOn              = True<o:p></o:p></p>
<p class="MsoNormal">    cfres.tiMainFontHeightF     = 0.013<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    cfres.cnFillOn              = True<o:p></o:p></p>
<p class="MsoNormal">    cfres.cnLinesOn             = False<o:p></o:p></p>
<p class="MsoNormal">    cfres.cnLineLabelsOn        = False<o:p></o:p></p>
<p class="MsoNormal">    cfres.cnFillPalette         = cmap<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    cfres.lbAutoManage          = True #False<o:p></o:p></p>
<p class="MsoNormal">    cfres.lbLabelStride         = 1<o:p></o:p></p>
<p class="MsoNormal">    cfres.pmLabelBarWidthF      = 0.02<o:p></o:p></p>
<p class="MsoNormal">    cfres.lbLabelFontHeightF    = 0.016<o:p></o:p></p>
<p class="MsoNormal">    cfres.lbPerimThicknessF     = 2<o:p></o:p></p>
<p class="MsoNormal">    cfres.pmLabelBarOrthogonalPosF = 0.002<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    plot = Ngl.contour(wks,cvarone,cfres)<o:p></o:p></p>
<p class="MsoNormal">    oplot= Ngl.contour(wks,cvartwo,clres)<o:p></o:p></p>
<p class="MsoNormal">    Ngl.overlay(plot,oplot)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    Ngl.draw(plot)<o:p></o:p></p>
<p class="MsoNormal">    Ngl.frame(wks)<o:p></o:p></p>
<p class="MsoNormal">    Ngl.destroy(wks)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>