Difference between revisions of "TAChart Roadmap"
From Free Pascal wiki
Jump to navigationJump to search (Created page with "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 int...") |
(→Tools) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 13: | Line 13: | ||
==== Axises/Transformations ==== | ==== Axises/Transformations ==== | ||
− | |||
* finish multiaxis | * finish multiaxis | ||
** auto-scaling to percent range | ** auto-scaling to percent range | ||
Line 22: | Line 21: | ||
* various axis marks steps -- logarithmic etc. | * various axis marks steps -- logarithmic etc. | ||
* fixed start/step interval source (?) | * fixed start/step interval source (?) | ||
− | * use | + | * use Intervals.Count in custom source |
* merge Intervals of axis and source (?) | * merge Intervals of axis and source (?) | ||
** advanced axis step controls -- targetStepSize(Pixels/Graph/Axis)... | ** advanced axis step controls -- targetStepSize(Pixels/Graph/Axis)... | ||
Line 29: | Line 28: | ||
* axis.DateTimeFormat(?) | * axis.DateTimeFormat(?) | ||
* axis.Depth | * axis.Depth | ||
− | |||
* walls | * walls | ||
* YYYMMDD -> datetime transform(?) | * YYYMMDD -> datetime transform(?) | ||
Line 36: | Line 34: | ||
* fixed size/synchronize axis size between linked charts | * fixed size/synchronize axis size between linked charts | ||
* "axis breaks" -- transformation? | * "axis breaks" -- transformation? | ||
+ | * Cartesian Distortion: http://bost.ocks.org/mike/fisheye/#cartesian | ||
==== Series ==== | ==== Series ==== | ||
− | * 3-d series: bubble, box-and-whiskers(?), OHLC(?), func | + | * 3-d series: <s>bubble, box-and-whiskers(?), OHLC(?),</s> func |
− | * fix 3-d pie series with exploded slices | + | * <s>fix 3-d pie series with exploded slices</s> |
− | * bar: pyramid, code, cylinder, prism, number of faces | + | * bar: <s>pyramid, code, cylinder, prism, </s>number of faces |
* bug: all-negative area has no zero plane | * bug: all-negative area has no zero plane | ||
* top-down and right-to-left series | * top-down and right-to-left series | ||
* Z axis, XZ and YZ grids | * Z axis, XZ and YZ grids | ||
* polar axis | * polar axis | ||
− | * polar series: labels, brush, pointers | + | * <s>polar series: labels, brush, pointers</s> |
* TConstantLine.Source -- use X only | * TConstantLine.Source -- use X only | ||
* 3-d surface | * 3-d surface | ||
Line 55: | Line 54: | ||
** better design-time display, | ** better design-time display, | ||
** transparency threshold (?) / ColorSource.Y as opacity (?) | ** transparency threshold (?) / ColorSource.Y as opacity (?) | ||
− | * range bar series | + | * <s>range bar series</s> |
* Gantt series (bar.starty, bar.startx, bar.endx) | * Gantt series (bar.starty, bar.startx, bar.endx) | ||
− | * stacked/donut pie series (?) | + | * stacked<s>/donut</s> pie series (?) |
− | * test/fix rotated stacked series | + | * <s>test/fix rotated stacked series</s> |
* subcharts | * subcharts | ||
* GIS | * GIS | ||
* func series: discontinuity pointers | * func series: discontinuity pointers | ||
* slopegraphs, sparklines (?) | * slopegraphs, sparklines (?) | ||
− | * arrow series | + | * <s>arrow series</s> |
* use Hare-Niemer integer compensation to make sure that percents always add up to 100% (??) | * use Hare-Niemer integer compensation to make sure that percents always add up to 100% (??) | ||
* pie chart slice grouping: MinSliceSize (?) | * pie chart slice grouping: MinSliceSize (?) | ||
Line 69: | Line 68: | ||
* measurement series | * measurement series | ||
* support infinity in more series | * support infinity in more series | ||
+ | * <s>polygon series</s> | ||
==== Legend ==== | ==== Legend ==== | ||
Line 77: | Line 77: | ||
* different widths for columns | * different widths for columns | ||
* arbitrary position | * arbitrary position | ||
+ | * <s>support clicks on series items</s> | ||
+ | * support FontSeriesColor | ||
==== Tools ==== | ==== Tools ==== | ||
− | * test/fix many charts per toolset | + | * <s>test/fix many charts per toolset</s> |
− | * remove old reticule | + | * <s>remove old reticule</s> |
* xorpen/xortext in all drawers | * xorpen/xortext in all drawers | ||
* label editor/notes | * label editor/notes | ||
− | * axis tools | + | * <s>axis tools</s> |
+ | * <s>legend click tool</s> | ||
+ | * <s>title/footer click tool</s> | ||
==== Optimization ==== | ==== Optimization ==== | ||
Line 95: | Line 99: | ||
* OO (incompatible?) | * OO (incompatible?) | ||
* YList in Marks.Format | * YList in Marks.Format | ||
− | * calculated sources: optimization, sliding median, user- | + | * calculated sources: optimization, sliding median, user-defined filter |
− | * derivative: Savitzky-Golay, non-equidistant X | + | * derivative: <s>Savitzky-Golay</s>, non-equidistant X |
* bug: db-source does not auto-refresh after dataset changes (?) | * bug: db-source does not auto-refresh after dataset changes (?) | ||
− | * support NaN in all series: func, ... | + | * <s>support NaN in all series: func, ...</s> |
* TColorSource (?) | * TColorSource (?) | ||
+ | * more animations | ||
==== Labels ==== | ==== Labels ==== | ||
Line 105: | Line 110: | ||
* fix labels with NaNs | * fix labels with NaNs | ||
* margins | * margins | ||
− | * more frame shapes: | + | * more frame shapes: rhumb, hexagon, octagon... |
+ | ** control shape corner size | ||
* fix/improve pie series label positioning | * fix/improve pie series label positioning | ||
** "sideband" positioning | ** "sideband" positioning | ||
Line 126: | Line 132: | ||
==== Drawers ==== | ==== Drawers ==== | ||
+ | |||
* transparency in all drawers (print, wmf, ...) | * transparency in all drawers (print, wmf, ...) | ||
− | * | + | * monochrome in all drawers |
+ | * putImage in all drawers | ||
* extract PrepareSimplePen | * extract PrepareSimplePen | ||
Line 140: | Line 148: | ||
* crosshair page in tools demo | * crosshair page in tools demo | ||
* zerolevel (?) | * zerolevel (?) | ||
− | * from tutorials | + | * <s>from tutorials</s> |
==== Other ==== | ==== Other ==== | ||
− | * warnings (incompatible | + | * warnings (incompatible axes in group, ...) |
* more documentation | * more documentation | ||
* more tests | * more tests | ||
Line 159: | Line 167: | ||
* AddSubcomponent => SetParentComponent | * AddSubcomponent => SetParentComponent | ||
* extract TSubcomponentClassRegistry | * extract TSubcomponentClassRegistry | ||
− | * LazFreeType in nogui (or even OpenGL) | + | * <s>LazFreeType in nogui (or even OpenGL)</s> |
* bresenham in TesselateRadialPie | * bresenham in TesselateRadialPie | ||
* advanced notification | * advanced notification | ||
+ | |||
+ | [[Category:TAChart]] | ||
+ | [[Category: Roadmaps]] |
Latest revision as of 12:36, 24 October 2021
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
- series index list editor
- ListSource.DataPoints editor: intergate with YCount
- marks.format/style editor
- margins editor
- subcomponent editor
- add shortcuts, use actions
- convert to grid/checklist, show enabled/active checkboxes
Axises/Transformations
- finish multiaxis
- auto-scaling to percent range
- partial-linear/local zoom transform (?)
- inverted as transformation (?)
- logBase 0 => e ?
- non-decartes axises + XY transform (ternary, polar...)
- various axis marks steps -- logarithmic etc.
- fixed start/step interval source (?)
- use Intervals.Count in custom source
- merge Intervals of axis and source (?)
- advanced axis step controls -- targetStepSize(Pixels/Graph/Axis)...
- test/fix inverted axis
- axis.autoscale as a shortcut(?)
- axis.DateTimeFormat(?)
- axis.Depth
- walls
- YYYMMDD -> datetime transform(?)
- LineRange(?)
- arrows: fill color, pixel-symmetrical
- fixed size/synchronize axis size between linked charts
- "axis breaks" -- transformation?
- Cartesian Distortion: http://bost.ocks.org/mike/fisheye/#cartesian
Series
- 3-d series:
bubble, box-and-whiskers(?), OHLC(?),func fix 3-d pie series with exploded slices- bar:
pyramid, code, cylinder, prism,number of faces - bug: all-negative area has no zero plane
- top-down and right-to-left series
- Z axis, XZ and YZ grids
- polar axis
polar series: labels, brush, pointers- TConstantLine.Source -- use X only
- 3-d surface
- color map:
- isolines & labels,
- gradients,
- data interpolation, auto-scale colors (thresholds in percent)
- better design-time display,
- transparency threshold (?) / ColorSource.Y as opacity (?)
range bar series- Gantt series (bar.starty, bar.startx, bar.endx)
- stacked
/donutpie series (?) test/fix rotated stacked series- subcharts
- GIS
- func series: discontinuity pointers
- slopegraphs, sparklines (?)
arrow series- use Hare-Niemer integer compensation to make sure that percents always add up to 100% (??)
- pie chart slice grouping: MinSliceSize (?)
- ternary charts (?)
- measurement series
- support infinity in more series
polygon series
Legend
- ColumnPerGroup
- legend line per stack level
- legendpanel.autosize -> scrollable with scrollbox
- different widths for columns
- arbitrary position
support clicks on series items- support FontSeriesColor
Tools
test/fix many charts per toolsetremove old reticule- xorpen/xortext in all drawers
- label editor/notes
axis toolslegend click tooltitle/footer click tool
Optimization
- caches: graphpoints, imagepoints, layers/barriers
- image cache for tools
Sources
- OO (incompatible?)
- YList in Marks.Format
- calculated sources: optimization, sliding median, user-defined filter
- derivative:
Savitzky-Golay, non-equidistant X - bug: db-source does not auto-refresh after dataset changes (?)
support NaN in all series: func, ...- TColorSource (?)
- more animations
Labels
- fix labels with NaNs
- margins
- more frame shapes: rhumb, hexagon, octagon...
- control shape corner size
- fix/improve pie series label positioning
- "sideband" positioning
- special label attachments: "center", "side center", "nearest point"
- auto-position labels: two-level, generic, GA
- free labels (notes)
- control label attachment (top, bottom, center, ...)
- Styles stored false
- measure non-symmetrical labels correctly
Presentation
- embellishments: gradient, shadow, glow(?)
- color->embellishment mapping(?)
- Generic renderer (?): OpenGL, SVG, true 3-d
- TCanvas-independent API: TChartPen, TChartBrush, TChartFont
- panes (??)
- styles: apply to more series, usecolor, perstack/perpoint
- embelishments from styles ?
Drawers
- transparency in all drawers (print, wmf, ...)
- monochrome in all drawers
- putImage in all drawers
- extract PrepareSimplePen
Chart
- DepthX/DepthY ...or... CameraVector
- navigation: "axis scrollbar", CurrentExtentPen, limit navscrollbar to the extent
- measuring units: pixels, graph, percent
Demos
- crosshair page in tools demo
- zerolevel (?)
from tutorials
Other
- warnings (incompatible axes in group, ...)
- more documentation
- more tests
- better icons
- lazreport integration
- more tutorials
- wizards
- shapes
- LazLogger
- better teechart compatibility
Internal
- AddSubcomponent => SetParentComponent
- extract TSubcomponentClassRegistry
LazFreeType in nogui (or even OpenGL)- bresenham in TesselateRadialPie
- advanced notification