[gradsusr] Display issues in Grads

Thomas Robinson ter at hawaii.edu
Mon Dec 29 16:33:10 EST 2014


Aloha Marjahn,

The problem is you are using a white background with white letters and
numbers.  There are two solutions:

1.  Using the latest version of GrADS fixed this problem for me.  When I
used opengrads, I had this problem.
2.  Use the following commands:
** Set background to white

       'set background 1'
** Clear to get the white background

'clear'
*** Set strings to black
       'set string 0'
*** Set the map to black
       'set map 0'
*** Set the labels and title to black
       'set annot 0'

As for the cbar script, you need to kinda do the same thing.  I attached a
modified cbarn script (cbarn_black.gs) that changes the the bar and numbers
to black.

I hope this is helpful!  I included the text of the cbarn_black script
below.

-Tom

*

*  Script to plot a colorbar

*

*  The script will assume a colorbar is wanted even if there is

*  not room -- it will plot on the side or the bottom if there is

*  room in either place, otherwise it will plot along the bottom and

*  overlay labels there if any.  This can be dealt with via

*  the 'set parea' command.  In version 2 the default parea will

*  be changed, but we want to guarantee upward compatibility in

*  sub-releases.

*

*

* modifications by mike fiorino 940614

*

* - the extreme colors are plotted as triangles

* - the colors are boxed in white

* - input arguments in during a run execution:

*

* run cbarn sf vert xmid ymid

*

* sf   - scale the whole bar 1.0 = original 0.5 half the size, etc.

* vert - 0 FORCES a horizontal bar = 1 a vertical bar

* xmid - the x position on the virtual page the center the bar

* ymid - the x position on the virtual page the center the bar

*

* if vert,xmid,ymid are not specified, they are selected

* as in the original algorithm

*


function colorbar (args)


sf=subwrd(args,1)

vert=subwrd(args,2)

xmid=subwrd(args,3)

ymid=subwrd(args,4)


if(sf='');sf=1.0;endif


*

*  Check shading information

*

  'query shades'

  shdinfo = result

  if (subwrd(shdinfo,1)='None')

    say 'Cannot plot color bar: No shading information'

    return

  endif


*

*  Get plot size info

*

  'query gxinfo'

  rec2 = sublin(result,2)

  rec3 = sublin(result,3)

  rec4 = sublin(result,4)

  xsiz = subwrd(rec2,4)

  ysiz = subwrd(rec2,6)

  ylo = subwrd(rec4,4)

  xhi = subwrd(rec3,6)

  xd = xsiz - xhi


  ylolim=0.6*sf

  xdlim1=1.0*sf

  xdlim2=1.5*sf

  barsf=0.8*sf

  yoffset=0.2*sf

  stroff=0.05*sf

  strxsiz=0.12*sf

  strysiz=0.13*sf

*

*  Decide if horizontal or vertical color bar

*  and set up constants.

*

  if (ylo<ylolim & xd<xdlim1)

    say "Not enough room in plot for a colorbar"

    return

  endif

  cnum = subwrd(shdinfo,5)

*

* logic for setting the bar orientation with user overides

*

  if (ylo<ylolim | xd>xdlim1)

    vchk = 1

    if(vert = 0) ; vchk = 0 ; endif

  else

    vchk = 0

    if(vert = 1) ; vchk = 1 ; endif

  endif

*

* vertical bar

*


  if (vchk = 1 )


    if(xmid = '') ; xmid = xhi+xd/2 ; endif

    xwid = 0.2*sf

    ywid = 0.5*sf



    xl = xmid-xwid/2

    xr = xl + xwid

    if (ywid*cnum > ysiz*barsf)

      ywid = ysiz*barsf/cnum

    endif

    if(ymid = '') ; ymid = ysiz/2 ; endif

    yb = ymid - ywid*cnum/2

    'set string 0 l 5'

    vert = 1


  else


*

* horizontal bar

*


    ywid = 0.4

    xwid = 0.8


    if(ymid = '') ; ymid = ylo/2-ywid/2 ; endif

    yt = ymid + yoffset

    yb = ymid

    if(xmid = '') ; xmid = xsiz/2 ; endif

    if (xwid*cnum > xsiz*barsf)

      xwid = xsiz*barsf/cnum

    endif

    xl = xmid - xwid*cnum/2

    'set string 0 tc 5'

    vert = 0

  endif



*

*  Plot colorbar

*



  'set strsiz 'strxsiz' 'strysiz

  num = 0

  while (num<cnum)

    rec = sublin(shdinfo,num+2)

    col = subwrd(rec,1)

    hi = subwrd(rec,3)

    if (vert)

      yt = yb + ywid

    else

      xr = xl + xwid

    endif


*   Draw the left/bottom triangle

    if (num = 0)

      if(vert = 1)

        xm = (xl+xr)*0.5

        'set line 'col

        'draw polyf 'xl' 'yt' 'xm' 'yb' 'xr' 'yt' 'xl' 'yt

        'set line 0 1 5'

        'draw line 'xl' 'yt' 'xm' 'yb

        'draw line 'xm' 'yb' 'xr' 'yt

        'draw line 'xr' 'yt' 'xl' 'yt

      else

        ym = (yb+yt)*0.5

        'set line 'col

        'draw polyf 'xl' 'ym' 'xr' 'yb' 'xr' 'yt' 'xl' 'ym

        'set line 0 1 5'

        'draw line 'xl' 'ym' 'xr' 'yb

        'draw line 'xr' 'yb' 'xr' 'yt

        'draw line 'xr' 'yt' 'xl' 'ym

      endif

    endif


*   Draw the middle boxes

    if (num!=0 & num!= cnum-1)

      'set line 'col

      'draw recf 'xl' 'yb' 'xr' 'yt

      'set line 0 1 5'

      'draw rec  'xl' 'yb' 'xr' 'yt

    endif


*   Draw the right/top triangle

    if (num = cnum-1)

      if (vert = 1)

        'set line 'col

        'draw polyf 'xl' 'yb' 'xm' 'yt' 'xr' 'yb' 'xl' 'yb

        'set line 0 1 5'

        'draw line 'xl' 'yb' 'xm' 'yt

        'draw line 'xm' 'yt' 'xr' 'yb

        'draw line 'xr' 'yb' 'xl' 'yb

      else

        'set line 'col

        'draw polyf 'xr' 'ym' 'xl' 'yb' 'xl' 'yt' 'xr' 'ym

        'set line 0 1 5'

        'draw line 'xr' 'ym' 'xl' 'yb

        'draw line 'xl' 'yb' 'xl' 'yt

        'draw line 'xl' 'yt' 'xr' 'ym

      endif

    endif


*   Put numbers under each segment of the color key

    if (num < cnum-1)

      if (vert)

        xp=xr+stroff

        'draw string 'xp' 'yt' 'hi

      else

        yp=yb-stroff

       'draw string 'xr' 'yp' 'hi

      endif

    endif


*   Reset variables for next loop execution

    if (vert)

      yb = yt

    else

      xl = xr

    endif

    num = num + 1

  endwhile

return
****************************************

On Mon, Dec 29, 2014 at 11:05 AM, Stephen McMillan <
smcmillan at planalytics.com> wrote:

> Marjahn,
>
> The cbar script only does the color bar.  It would help if you also
> included the portion of your script that sets up and generates the image,
> otherwise it's difficult to reproduce and evaluate your issue.
>
> Stephen Mc
>
> On Mon, Dec 29, 2014 at 3:18 PM, Marjahn Finlayson <
> mfinlayson at wesleyan.edu> wrote:
>
>> I normally would run cbar.gs script. I copied the script from the grads
>> library displayed below:
>>
>> *
>> *  Script to plot a colorbar
>> *
>> *  The script will assume a colorbar is wanted even if there is
>> *  not room -- it will plot on the side or the bottom if there is
>> *  room in either place, otherwise it will plot along the bottom and
>> *  overlay labels there if any.  This can be dealt with via
>> *  the 'set parea' command.  In version 2 the default parea will
>> *  be changed, but we want to guarantee upward compatibility in
>> *  sub-releases.
>> *
>> function colorbar (args)
>> *
>> *  Check shading information
>> *
>>   'query shades'
>>   shdinfo = result
>>   if (subwrd(shdinfo,1)='None')
>>     say 'Cannot plot color bar: No shading information'
>>     return
>>   endif
>> *
>> *  Get plot size info
>> *
>>   'query gxinfo'
>>   rec2 = sublin(result,2)
>>   rec3 = sublin(result,3)
>>   rec4 = sublin(result,4)
>>   xsiz = subwrd(rec2,4)
>>   ysiz = subwrd(rec2,6)
>>   ylo = subwrd(rec4,4)
>>   xhi = subwrd(rec3,6)
>>   xd = xsiz - xhi
>> *
>> *  Decide if horizontal or vertical color bar
>> *  and set up constants.
>> *
>>   if (ylo<0.6 & xd<1.0)
>>     say "Not enough room in plot for a colorbar"
>>     return
>>   endif
>>   cnum = subwrd(shdinfo,5)
>>   if (ylo<0.6 | xd>1.5)
>>     xl = xhi + xd/2 - 0.4
>>     xr = xl + 0.2
>>     xwid = 0.2
>>     ywid = 0.5
>>     if (ywid*cnum > ysiz*0.8)
>>       ywid = ysiz*0.8/cnum
>>     endif
>>     ymid = ysiz/2
>>     yb = ymid - ywid*cnum/2
>>     'set string 1 l 5'
>>     vert = 1
>>   else
>>     ymid = ylo/2
>>     yt = ymid + 0.2
>>     yb = ymid
>>     xmid = xsiz/2
>>     xwid = 0.8
>>     if (xwid*cnum > xsiz*0.8)
>>       xwid = xsiz*0.8/cnum
>>     endif
>>     xl = xmid - xwid*cnum/2
>>     'set string 1 tc 5'
>>     vert = 0
>>   endif
>> *
>> *  Plot colorbar
>> *
>>   'set strsiz 0.12 0.13'
>>   num = 0
>>   while (num<cnum)
>>     rec = sublin(shdinfo,num+2)
>>     col = subwrd(rec,1)
>>     hi = subwrd(rec,3)
>>     'set line 'col
>>     if (vert)
>>       yt = yb + ywid
>>     else
>>       xr = xl + xwid
>>     endif
>>     'draw recf 'xl' 'yb' 'xr' 'yt
>>     if (num<cnum-1)
>>       if (vert)
>>         'draw string '%(xr+0.05)%' 'yt' 'hi
>>       else
>>         'draw string 'xr' '%(yb-0.05)%' 'hi
>>       endif
>>     endif
>>     num = num + 1
>>     if (vert); yb = yt;
>>     else; xl = xr; endif;
>>   endwhile
>>
>>
>> On Sun, Dec 28, 2014 at 9:45 PM, Stephen McMillan <
>> smcmillan at planalytics.com> wrote:
>>
>>> Yes, you should be able to do it for temperatures against time.
>>> Regarding your "issue with running the char"...it would help if you
>>> provided a sample of your script that has the issue, as well as the result
>>> (image and/or screen result).  Otherwise, I would have to guess what you
>>> mean.
>>> Stephen
>>>
>>> On Sun, Dec 28, 2014 at 6:31 PM, <mfinlayson at wesleyan.edu> wrote:
>>>
>>>> I also have an issue with running the char. I can see the shaded colors
>>>> but not the numerical values that correspond with them.
>>>>
>>>>
>>>> On Dec 28, 2014, at 1:41 PM, Stephen McMillan <
>>>> smcmillan at planalytics.com> wrote:
>>>>
>>>> Marjahn,
>>>> Are you trying to plot lat/lon labels, or something else?  If lat/lon,
>>>> and you're using nps or sps projection, you won't get them.  Use 'set mproj
>>>> latlon' instead.  Otherwise, you can use 'draw string...' function to draw
>>>> them.
>>>> Stephen
>>>>
>>>> On Sun, Dec 28, 2014 at 1:26 PM, Marjahn Finlayson <
>>>> mfinlayson at wesleyan.edu> wrote:
>>>>
>>>>> Hey everyone,
>>>>>
>>>>> I'm trying to plot data in grads, but the numerical labels in the xlab
>>>>> and ylab do not appear whenever I create charts or maps.
>>>>> I've tried the 'set xlab on' function and nothing's happened.
>>>>> Help!
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gradsusr mailing list
>>>>> gradsusr at gradsusr.org
>>>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>>>>
>>>>>
>>>> _______________________________________________
>>>> gradsusr mailing list
>>>> gradsusr at gradsusr.org
>>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>>>
>>>>
>>>> _______________________________________________
>>>> gradsusr mailing list
>>>> gradsusr at gradsusr.org
>>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>>>
>>>>
>>>
>>> _______________________________________________
>>> gradsusr mailing list
>>> gradsusr at gradsusr.org
>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>>
>>>
>>
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>>
>>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
>
>


-- 
Tom Robinson
Treasurer - Graduate Student Organization
Secretary - Student Athletic Fee Committee
Graduate Student - Department of Atmospheric Science
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20141229/8ac131c6/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cbarn_black.gs
Type: application/octet-stream
Size: 4705 bytes
Desc: not available
Url : http://gradsusr.org/pipermail/gradsusr/attachments/20141229/8ac131c6/attachment-0001.obj 


More information about the gradsusr mailing list