Hi Moritz,<br>Regarding legends with d.graph, these are the main issues where I found I needed to do too much of trial and error, some of which I think could probably be avoided/improved in a future version...<br><br>1. the legend ends up with some strange additions beyond just the range of data: like what are those numbers after each range <br>
e.g. in the example below where did | 0 and | 5 come from? It would be nice to not have this automatically displayed.<br>60 - 80 | 0<br>80-100 | 5<br><br>2. there could be a flag on d.graph, which allows the output to have a &quot;&lt; minbreak&quot; and &quot;&gt; maxbreak&quot; option, so that for cases like the one we are discussing, the legend does not keep changing based on different data ranges.<br>
<br>3. size and position<br>Here, I wanted to get a legend file separately, and save a legend png. To do this I had to play with the size and other parameters extensively to make the symbols and associated text match up. It would be great to be able to do the following with some flags, for the case where the legend alone is displayed:<br>
(i) set the overall size of the display within which the legend will be displayed<br>(ii) set the position of the legend within the display with options like lowerleft, upperright, center, etc<br>(iii) set the size of the legend as a fraction/percentage of the display.<br>
(iv) make the background transparent (or not)<br>such that the above settings &#39;automatically&#39; set up the symbol and corresponding text all properly lined up..<br><br>I am aware that if I was just better at this I could do it quickly enough..but the above functionality would make it easier for less-than-expert people like myself, who try to use open-source as much as possible despite the handicap of having been groomed on Windows...<br>
<br>I will write back when i&#39;ve had a chance to look up the segfaults on my laptop..<br><br>And oh, the mismatch of color between display and legend was entirely my fault - i was displaying with one set of colors but had tweaked the legend file separately with a different set of colors..<br>
<br>Thanks for all your help,<br>Vishal<br><br><div class="gmail_quote">On Wed, Apr 8, 2009 at 4:58 AM, Moritz Lennert <span dir="ltr">&lt;<a href="mailto:mlennert@club.worldonline.be">mlennert@club.worldonline.be</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On 08/04/09 02:23, Vishal Mehta wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Regarding the segmentation faults: I switched to a different machine<br>
to do all this latter work. I havent tried the new scripts on the<br>
original machine (my laptop). Both are running 6.4svn.<br>
</blockquote>
<br></div>
Weird. I can confirm segfaults in 6.5svn (I suppose that this is what<br>
you mean by 6.4svn, i.e. the current 6.x development branch), but only<br>
when using d.mon, not when using direct rendering<br>
(GRASS_RENDER_IMMEDIATE=TRUE). Since I wrote this code on the base of<br>
the grass7 tree, and then ported it back to 6.x, it is quite probable<br>
that I forgot some adaptations needed for d.mons... (CC&#39;ing to Glynn for<br>
any pointer on where I should look).<br>
Could you try with direct rendering on the machine where it segfaulted<br>
with d.mons ?<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Regarding legends, I found that I had to play around way too much to<br>
get the legend right.<br>
</blockquote>
<br></div>
Could you tell me which were the major parts that needed adjustment from you ?<br>
<br>
As you want to use the same legend for all maps, it is obviously easier<br>
to create one legend file by hand and to call d.graph on that in each cycle of the loop.<br>
<br>
However, I tweaked the source code (grass7 for now) just very slightly (changing text size and taking into account the case where the min value of the data is above the lowest break (or the max value below the highest break - see 2010-2030 max values in the example) and then ran the following script (using direct rendering as monitors don&#39;t exist anymore):<br>

<br>
export GRASS_FONT=Vera<br>
export GRASS_PNG_READ=TRUE<div class="im"><br>
<br>
yr=2010<br>
while [ $yr -lt 2105 ] ;<br>
  do<br>
    echo &quot;yr is $yr &quot;<br>
    export GRASS_PNGFILE=pc$yr.png<br></div>
    d.thematic.area map=CA column=pc$yr breaks=20,40,60\                <br>
                colors=cyan,yellow,red,blue leg=legfile<div class="im"><br>
    d.text -b text=&quot;$yr Population&quot; at=50,90 size=4<br></div>
    d.graph in=legfile<div class="im"><br>
    if [ $yr -eq 2090 ]<br>
       then yr=$((yr+10))<br>
       else yr=$((yr+5))<br>
    fi<br>
  done<br>
<br>
<br></div>
You can see the resulting animated gif here:<br>
<a href="http://geog-pc40.ulb.ac.be/popCA.gif" target="_blank">http://geog-pc40.ulb.ac.be/popCA.gif</a><br>
<br>
I don&#39;t find the legends too bad, but obviously it is difficult to create a one-size-fits-all solution for legends. I spent some time trying to find the right algorithm, but it is still very far from perfect. One thing I should probably add is a parameter for the placement of the legend in screen percents. Another is a detection mechanism to see how many significant decimals to keep (There should be some examples, notably in Hamish&#39;es work, I just need to look at those...). I don&#39;t know, however, whether the d.graph solution is the best, so feedback is very welcome on that.<div class="im">
<br>
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
And even then, there&#39;s a yellow color that is not on the legend file,<br>
that shows up in the display anyway.<br>
</blockquote>
<br></div>
Could you show an example of that ?<br>
<br>
Thank you for your feedback so far. We really have to identify the cause of those segfaults...<br><font color="#888888">
<br>
Moritz<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Vishal K. Mehta, PhD<br>Scientist<br>Stockholm Environment Institute - US<br>133 D St Suite F<br>Davis CA 95616<br><a href="http://www.sei-us.org">www.sei-us.org</a><br>