Difference between revisions of "TAChart"
(→Download: The old download has been removed from the download section to prevent confusion.) |
|||
Line 42: | Line 42: | ||
=== Download === | === Download === | ||
The latest stable release can be found on the in the Lazarus SVN repository (The components are on the Chart Tab) | The latest stable release can be found on the in the Lazarus SVN repository (The components are on the Chart Tab) | ||
− | |||
− | |||
=== Usage === | === Usage === |
Revision as of 10:24, 29 December 2010
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
português (pt) │
русский (ru) │
українська (uk) │
中文(中国大陆) (zh_CN) │
About
TAChart is a charting LGPL component for Lazarus (TeeChart like). It contains the functions that Philippe Martinole developed for the TeleAuto project and lots of changes introduced by Luis Rodrigues while porting the Epanet application from Delphi to Lazarus. The code was then extensively rewritten, expanded and is now maintained by Alexander Klenin.
If you have questions, bug reports or feature requests, please post them to the Lazarus mailing list.
Features
- Pie Series
- Bar Series
- Area Series
- Line Series (can work as Point Series)
- Function Series with domain support
- Unlimited number of series and points on graph
- Flexible chart sources, including design-time editable, random, dynamic and db-aware sources.
- Graph legend, title and footer
- Axis labels and marks, manually set or auto-generated
- Arbitrary number of axises per chart
- Axis inversion, independent scale and offset, logarithmic scale
- Interactive zoom
- Reticule or vertical reticule with point measure
- Auto or manual graph limits
- Smart marks drawing
- Vertical and horizontal lines
- Easily extensible with new graph types
Screenshot
Here is an example of TAChart displaying a Line Series, Bar Series and Pie Series
Authors
Luís Rodrigues, Philippe Martinole, Alexander Klenin
Download
The latest stable release can be found on the in the Lazarus SVN repository (The components are on the Chart Tab)
Usage
See included examples in Lazarus source in (Lazarus Install Dir)/components/tachart/demo/
Roadmap
Below is a list of items that would be good to have in TAChart. Some of them are planned for implementation by the current maintainer, others will require patches from interested contributors.
Editors
- TChartExtent editor
- axis index editor
- series index list editor
- ListSource.DataPoints editor
- marks.format/style editor
- subcomponent editor
- add shortcuts, use actions
- convert to grid/checklist, show enabled/active checkboxes
- child auto-renaming
- bug: series editor hides on double-click: 17077
- bug: AV on Delete
Axises/Transformations
- finish multiaxis
- auto-scaling to percent range
- non-monotonic (?)
- user-defined transform
- partial-linear transform (?) partial zoom demo
- inverted as transformation (?)
- logBase 0 => e ?
- finish TIntervalChartSource
- various axis marks steps -- logarithmic etc.
- "center" aligned axis
- test/fix inverted axis
- axis.autoscale as a shortcut(?)
- axis.DateTimeFormat(?)
- axis.Depth
- walls
Series
- 3-d series: pie, bubble, box-and-whiskers(?)
- top-down and right-to-left series
- Z axis
- FuncSeries.AxisIndexX
- rotated func series
- polar axis and series
- moving series between charts
- splines
- LineStyle -> AxisIndex for TConstantLine (?)
- TConstantLine.Source -- use X only
- 3-d surface, color-coding & isolines
- range bar series
- Gantt series (bar.starty, bar.startx, bar.endx)
- stacked/donut pie series (?)
- labels for stacked series
Legend
- multiple blocks per legend line
- legend line: per point, per stack item
- draw pie slices in the legend
Tools
- userdefined tool
- test/fix many charts per toolset
- decouple reticule from TChart
Optimization
- caches
- graphpoints
- imagepoints
- layers/barriers
Sources
- YList in Marks.Format
- calculated sources: range=0 -- from the start, optimization, sliding median
- bug: db-source does not auto-refresh after dataset changes (?)
Labels
- rotated chart title support (? title is multi-line)
- frame shapes: rounded rects, ellipses, callouts
- fix/improve pie series label positioning
- auto-position labels: two-level, generic, GA
- free labels (notes)
- control label attachment (top, bottom, center, ...)
Presentation
- striped background
- embellishments: antialiasing, gradient, shadow, glow(?)
- color->embellishment mapping(?)
- transparency
- Generic drawer: TCanvas/AggPas/OpenGL
- panes
- styles: usepen/usebrush, apply to more series, usecolor
Other
- more documentation
- more tests
- oscilloscope demo
- printing
- better icons
- lazreport integration
- export to pdf/svg
- tutorials
- wizards
Internal
- AddSubcomponent => SetParentComponent
- extract TSubcomponentClassRegistry