[ncl-talk] panel plot with 2 color bars for each plot ( and common color bars)
Adam Phillips
asphilli at ucar.edu
Fri Nov 6 10:58:51 MST 2015
Hi Ioana,
Yes, I was afraid of that happening, and that's why I think it might be
best to set
dres at cnFillColors as I suggested in the previous email.
Here's actually a better way to do it, instead of this:
cmap_r = read_colormap_file("NCV_manga")
dres at cnFillPalette = cmap_r ; by default NCL will span the full range of
cmap_r
try this: (untested)
; manually set the cmap_r indices to use for your colors
dres at cnLevelSelectionMode = "ExplicitLevels"
dres at cnLevels = fspan(-.03,.03,13) ; same as you setting
cn*LevelValF/cnLevelSpacingF
cmap_r = read_colormap_file("NCV_manga")
printVarSummary(cmap_r) ; see how big cmap_r is, and set c_ind accordigly
c_ind = (/2,10,20,30,40,50,60,70,80,90,100,110,120,132/) ; just a guess
here
dres at cnFillPalette = cmap_r(c_ind,:)
lbres at lbFillColors = cmap_r(c_ind,:)
Finally, I see that your label bar labels are running off the page. You can
fix this by adjusting the y-value within gsn_labelbar_ndc to the left:
gsn_labelbar_ndc (wks,14,fspan(-.03,.03,13),0.81,0.5,lbres)
Hope that all makes sense.
Adam
On Fri, Nov 6, 2015 at 10:43 AM, Ioana Colfescu <ioana.colfescu at ed.ac.uk>
wrote:
> Hi Adam and thanks very much ! I made the changes you suggested and it
> works.
> However, I still have a question :
> I get the plot as the one attached and so the vertical color bar doesn't
> have all the colors I try to specify. Is there anything else I should do to
> get all colors ?
> My code is ( as you wrote it) the addition at the end of mine of:
>
> gsn_panel(wks,plot,(/6,2/),resP)
> lbres = True
> lbres at lbPerimOn = False ; no label bar box
> lbres at lbOrientation = "Vertical" ; orientation
> lbres at vpWidthF = 0.03 ; size
> lbres at vpHeightF = 0.3
> lbres at lbLabelFontHeightF = resP at lbLabelFontHeight
> lbres at lbLabelAlignment = "InteriorEdges" ; where to label
> lbres at lbMonoFillPattern = True ; fill sold
> lbres at lbFillColors = cmap_r
> gsn_labelbar_ndc(wks,26,fspan(-.005,.005,26),0.85,0.65,lbres)
> frame(wks)
>
> Ioana
>
>
>
>
>
> On 06/11/15 16:56, Adam Phillips wrote:
>
> Hi Ioana,
> One thing that I see is that I think you meant to say res at lbLabelBar*On*,
> and not res at lbLabelBar. (Same for tres at lbLabelBar.) I also see that you
> are setting dres at cnLevelSelectionMode = "ManualLevels" but you are not
> setting the cnMinLevelValF/cnMaxLevelValF/cnLevelSpacingF resources as you
> are for the tres resource list. I believe this will result in NCL choosing
> the contour levels for your plots created with the dres resource list, and
> thus they are likely not the same for every plot.
>
> I think the solution is to not draw the individual labelbars (by setting
> res at lbLabelBarOn = False), draw the first labelbar by leabing
> resP at gsnPanelLabelBar = True, and then drawing the 2nd labelbar manually
> by calling gsn_labelbar_ndc. (Alternatively you can call
> gsn_create_labelbar, but in this case I think it would be easier to use
> gsn_labelbar_ndc.)
>
> For various label bar examples, see:
> http://www.ncl.ucar.edu/Applications/labelbar.shtml
>
> In the coding below I will assume that your dres resource list will have
> the contours defined like this:
> dres at cnMinLevelValF = -0.03 ; set min contour level
> dres at cnMaxLevelValF = 0.03 ; set max contour level
> dres at cnLevelSpacingF = 0.005
>
> I think all you need to do is to add the call to gsn_labelbar_ndc at the
> end of your script:
> resP at gsnFrame = False ; do not advance the frame with the gsn_panel call
> gsn_panel(wks,plot,(/6,2/),resP)
> lbres = True
> lbres at lbPerimOn = False ; no label bar box
> lbres at lbOrientation = "Vertical" ; orientation
> lbres at vpWidthF = 0.06 ; size
> lbres at vpHeightF = 0.6
> lbres at lbLabelFontHeightF = resP at lbLabelFontHeight
> lbres at lbLabelAlignment = "InteriorEdges" ; where to label
> lbres at lbMonoFillPattern = True ; fill sold
> lbres at lbFillColors = cmap_r
> gsn_labelbar_ndc (wks,14,fspan(-.03,.03,13),0.85,0.5,lbres)
> frame(wks)
> kk=kk+2
> ll=ll+2
> end do
> end
>
> The only possible issue I see with the above is that I set:
> lbres at lbFillColors = cmap_r
>
> I am not sure if you are setting the exact number of colors that NCL is
> using for the plots, or if NCL is spanning cmap_r. If it is the latter
> case, I would set dres at cnFillColors manually:
> dres at cnFillColors = cmap_r(0::3,:) ; 0::3 is a guess to span the
> colormap
> and then you can set
> lbres at lbFillColors = dres at cnFillColors
>
> Hope that at least gets you on the right track. If you have any further
> questions please respond to the ncl-talk email list.
> Adam
>
>
>
>
>
>
>
>
>
> On Fri, Nov 6, 2015 at 6:53 AM, Ioana Colfescu <ioana.colfescu at ed.ac.uk>
> wrote:
>
>> Hi,
>> I'm trying to do a panel plot in which I want to use 2 different color
>> bars in each plot in the panel.
>> I do get the plots but I have a problem with the color bars: I'd like to
>> deactivate the individual color bars ( for each plot) and have the color
>> bars as panel plot color bars - i.e one horizontal ( like in the plot ) and
>> one vertical ( the second one which doesn't show up) but what I get is the
>> result attached.
>>
>> Could someone please tell me what should I change in my script to make:
>> - the individual color bars disappear for each plot
>> - the second panel plot color bar appear to the left ( the vertical bar)
>> I tried to set both the individual or panel resources for plotting the
>> bar to False/True but doesn't work.
>> I attached the plot and the code. Thanks.
>> Ioana
>>
>> Relevant code part:
>>
>>
>> plot = new(12,graphic)
>> res = True
>> res at gsnDraw = False ; turn off draw
>> res at gsnFrame = False ; turn off frame
>> ............................
>> * res at lbLabelBar = False*
>> tres = res
>> dres = res
>> tres at cnFillPalette = "BlWhRe"
>> * tres at lbLabelBar = False*
>> tres at lbOrientation = "horizontal"
>> tres at mpFillOn = False ; turn off map fill
>> tres at cnLevelSelectionMode = "ManualLevels"
>> tres at cnMinLevelValF = -0.03 ; set min contour
>> level
>> tres at cnMaxLevelValF = 0.03 ; set max contour level
>> tres at cnLevelSpacingF = 0.005
>> * cmap_r = read_colormap_file("NCV_manga")*
>> * dres at cnFillPalette = cmap_r*
>> *d**res at lbLabelBar = False*
>> dres at cnLevelSelectionMode = "ManualLevels"
>> dres at mpShapeMode = "FreeAspect"
>> kk=0
>> ll=1
>> do ii=0,5
>> plot(kk) = gsn_csm_contour_map(wks,cont1(ii,:,:),tres)
>> newvar=new((/dimsizes(cont1)/),typeof(cont1))
>> newvar(ii,:,:)=agcms1 at _FillValue
>> newvar(ii,{-25:25},:)=cont1(ii,{-25:25},:)
>> ter_plot = gsn_csm_contour(wks,newvar(ii,:,:)*100,dres)
>> overlay(plot(kk),ter_plot)
>> plot(ll) = gsn_csm_contour_map(wks,aagcm1(ii,:,:),tres)
>> newvar2=new((/dimsizes(aagcm1)/),typeof(aagcm1))
>> newvar2(ii,:,:)=aagcm1 at _FillValue
>> newvar2(ii,{-25:25},:)=aagcm1(ii,{-25:25},:)
>> ter_plot2 = gsn_csm_contour(wks,newvar2(ii,:,:)*100,dres)
>> overlay(plot(ll),ter_plot2)
>> resP=True
>> resP at gsnMaximize = True ; large format
>> * resP at gsnPanelLabelBar = True * ; add common colorbar
>> resP at lbLabelAutoStride = True ; auto stride on labels
>> resP at lbLabelFontHeight = 0.015
>> resP at lbOrientation = "horizontal"
>> ; draw(plot)
>> ; frame(wks)
>> gsn_panel(wks,plot,(/6,2/),resP)
>> kk=kk+2
>> ll=ll+2
>> end do
>> end
>>
>>
>> The University of Edinburgh is a charitable body, registered in
>> Scotland, with registration number SC005336.
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
>
> --
> Adam Phillips
> Associate Scientist, Climate and Global Dynamics Laboratory, NCAR
> <http://www.cgd.ucar.edu/staff/asphilli/>www.cgd.ucar.edu/staff/asphilli/
> 303-497-1726
>
>
>
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>
--
Adam Phillips
Associate Scientist, Climate and Global Dynamics Laboratory, NCAR
www.cgd.ucar.edu/staff/asphilli/ 303-497-1726
<http://www.cgd.ucar.edu/staff/asphilli>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20151106/c17c9933/attachment.html
More information about the ncl-talk
mailing list