[Lazarus] TAChart 2nd Y Axis

David M. Lawrence dave at fuzzo.com
Fri Jul 29 06:56:03 CEST 2011


No, they happened when I tried to plot the chart.  I couldn't figure out 
how to implement the auto-scaling transformation from the demo.  For 
example, I see catTAuto listed as a transformation in the object 
inspector and listed as a property in the axisdemo main.pas, but cannot 
find any code to implement it there.  I do see it mentioned in main.lfm, 
but don't understand how it works -- it seems to list properties for the 
transform more than anything else.

In any event, for consistency's sake I need to maintain axes of -90 C to 
60 C for the temperature axis, and 0 cm to 300 cm for the precipitation 
axis.  Since I plot up to three temperature series, it's easier to set 
that as fixed and figure out how to transform the precipitation axis.

You seem to have a lot invested in the idea that flexible 
transformations are best from a coding standpoint, but the hundreds of 
charts I plot have to be plotted consistently -- there can be no 
individualized scaling.  The bars on a graph from a site with a maximum 
monthly precipitation of 20 cm need to be one-tenth as tall as the bars 
from a site with maximum monthly precipitation of 200 cm.  I am not just 
comparing the bars and lines on an individual chart, I am comparing one 
chart to similar charts from hundreds of sites around the world.  That 
way I and others can tell the chart from a desert site, for example, 
from that of a tropical rainforest site or monsoon forest site.  From 
that standpoint, being able to independently set max and min values for 
each vertical axis would be a lot better.

Since I am not sure this list accepts attachments, I will send you 
charts from two sites offlist for you to better see what I mean.

Thanks again for your time.

Sincerely,

Dave Lawrence

On 7/28/2011 11:50 PM, Alexander Klenin wrote:
> On Fri, Jul 29, 2011 at 01:04, David M. Lawrence<dave at fuzzo.com>  wrote:
>> I have tried to deconstruct the code in the demo, but cannot understand it
>> works, and my efforts to copy the code end in unspecified access violations.
> What do you mean by "unspecified"? Did they happen inside TAChart code?
> If so, can you post a tracebacks?
>
>> In any event, I cannot set up simple multipiers like you have in the sample
>> -- I have a database with hundreds of climate data files, and with new
>> climate normals being released, would like to add hundreds more.  Each data
>> set would have to be transformed individually.
> Are you talking about the linear transformation?
> Well, you could write a loop finding min/man data value, and
> recalculate scale accordingly.
> However, auto-scaling transformation does this for you.
>
>> It might be more helpful to be able to set max and min values in
>> TUserDefinedChartSource -- you have that capability in TRandomChartSource
>> (that much I did understand from the axis demo).
> Those serve completely different purpose.
> TRandomChartSource _generates_ data in the given range.
> Depending in the random seed, actual range between minimum and maximum
> generated values
> may be smaller then one given by the properties.
> Actual range is always calculated based on the data, including
> TUserDefinedChartSource,
> so there is no need to set it explicitly.
>
> Anyway, it seems that it is really time to start writing some documentation.
> I just did that -- see http://wiki.lazarus.freepascal.org/TAChart_documentation
> Hope that clarifies things.
>

-- 
------------------------------------------------------
  David M. Lawrence        | Home:  (804) 559-9786
  7471 Brook Way Court     | Fax:   (804) 559-9787
  Mechanicsville, VA 23111 | Email: dave at fuzzo.com
  USA                      | http:  http://fuzzo.com
------------------------------------------------------

"All drains lead to the ocean."  -- Gill, Finding Nemo

"We have met the enemy and he is us."  -- Pogo

"No trespassing
  4/17 of a haiku"  --  Richard Brautigan





More information about the Lazarus mailing list