[ncl-talk] how to add horizontal constant lines to a plot

Rick Brownrigg brownrig at ucar.edu
Thu Mar 30 07:44:49 MDT 2017


HI,

One way would be to use gsn_add_polyline():

    http://ncl.ucar.edu/Document/Graphics/Interfaces/gsn_add_polyline.shtml

In short after each plot, you'd set up the line resources the way you want,
and call this function 3 times for each plot for each of the three
altitudes.  Note that you need to assign the results returned by the
function to a unique variable, as the lines (nor the plots) aren't actually
drawn until the call to gsn_panel.  So, for the first plot, something like:

   ; these 3 lines done once...
   lines = new((/12/), graphic)   ; variable to hold the 12 lines
   lnres = True
   lnnum = 0

   plot(0) = gsn_csm_xy(......)
   lnres at gsLineColor = "red"
   lnres at gsLineDashPattern = ...
   lines(lnnum) = gsn_add_polyline(wks, plot(0), (/res at trXMinF, res at trXMaxF/),
(/1., 1./), lnres)
   lnnum = lnnum + 1

   lnres at gsLineColor = "blue
   lnres at gsLineDashPattern = ...
   lines(lnnum) = gsn_add_polyline(wks, plot(0), (/res at trXMinF, res at trXMaxF/),
(/2., 2./), lnres)
   lnnum = lnnum + 1

   lnres at gsLineColor = "green"
   lnres at gsLineDashPattern = ...
   lines(lnnum) = gsn_add_polyline(wks, plot(0), (/res at trXMinF, res at trXMaxF/),
(/3., 3./), lnres)
   lnnum = lnnum + 1

And so on. This is a bit tedious, and there are other ways to structure
this, eg, you could draw all the plots, then add the lines looping over the
plots, etc.  I'd probably turn the line drawing part into a function,
passing in the colors, patterns, wks, and plot number, returning the line
result.

Hope that helps...
Rick

On Wed, Mar 29, 2017 at 10:17 PM, Anahita Amiri Farahani <aamir003 at ucr.edu>
wrote:

> Hello all,
>
> I want to add three horizontal constant lines (solid and dashed) at
> different altitudes (1,2, and 3 km) with different colors to my plot but I
> don't know how to do it. I have attached the figure and the code.
>
>
>
>
>  wks = gsn_open_wks("eps","vertical_whole")
> ; gsn_define_colormap(wks,"gui_default")
>  plot = new(4,graphic)
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>   res                     = True               ; plot mods desired
> res at gsnFrame        = False   ; don't draw yet
>  res at gsnDraw         = False   ; don't advance frame yet
>
> res at tiXAxisString = "Dust extinction coefficient"  ; xaxis string
>   res at tiYAxisString = "Altitude (km)"                  ; yaxis string
> ;res at trYReverse        = True                       ; reverse Y-axis
>
>   res at trYMinF     = -1 ; set minimum Y-axis value
>   res at trYMaxF     =  10 ; set maximum Y-axis value
>   res at trXMinF     = 0        ; set minimum X-axis value
>   res at trXMaxF     = 0.06       ; set maximum X-axis value
>
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> res at gsnLeftString       = "Winter"         ; change left string
> plot(0) = gsn_csm_xy(wks,extinct_winter_avg2,alt,res)
> res at gsnLeftString       = "Spring"         ; change left string
> plot(1) = gsn_csm_xy(wks,extinct_spring_avg2,alt,res)
> res at gsnLeftString       = "Summer"         ; change left string
> plot(2) = gsn_csm_xy(wks,extinct_summer_avg2,alt,res)
> res at gsnLeftString       = "Fall"         ; change left string
> plot(3) = gsn_csm_xy(wks,extinct_fall_avg2,alt,res)
> ;************************************************
> ; create panel
> ;************************************************
> resP                  = True                    ; modify the panel plot
>
>  resP at gsnPanelFigureStrings = (/"a)","b)","c)","d)"/)      ; add strings
> to panel
>  gsn_panel(wks,plot,(/2,2/),resP)
>
>
> delete(plot)
> delete(res)
> delete(resP)
> delete(wks)
>
>
>
>
> Thanks,
> Ana
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170330/cc0341cd/attachment.html 


More information about the ncl-talk mailing list