summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/pgfplots/todo.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/pgfplots/todo.txt')
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/todo.txt438
1 files changed, 189 insertions, 249 deletions
diff --git a/Master/texmf-dist/doc/latex/pgfplots/todo.txt b/Master/texmf-dist/doc/latex/pgfplots/todo.txt
index e0d804e0d36..23880977b8f 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/todo.txt
+++ b/Master/texmf-dist/doc/latex/pgfplots/todo.txt
@@ -2,11 +2,77 @@
BUGS
-------------------------------------------------------------
+- the interrupt bounding box feature should still update the data bounding box.
+ Otherwise, transformations may fail.
+
+- to check: it *could* be possible that errorbars + stacked plots are
+ incompatible.
+
++ the 'alias' and 'create on use' features may lead to errors. Check it!
+
++ variables which are used both globally and locally seem to fill TeX's save
+ stack to due retained restores
+
++ I have introduced incompatiblities with the 'log identify minor ticks' option.
+ Check how to solve that. Side conditions:
+ - compatibility with the modified log tick labels for small range
+ - compatibility with extra ticks
+ - compatibility with the manual
+
++ check whether 'clip limits' works properly if only one data point falls into
+ the final region
+
++ add '-halt-on-error' to externalize command
+
++ handle rare case that auto limit computation leads to min > max (only possible
+ for clip limits=false)
+
++ evaluate 'every axis plot' inside of \addplot command, even if that means a
+ small inefficiency because it is evaluated in the \draw command as well.
+ -> allows to get id, prefix, samples and other behaviorual options.
+ -> attention: then, every axis plot would contain BOTH display and behavioral
+ options; take care with key paths
+
++ \addplot plot[#1] does not use /pgfplots as search path
++ 'every axis plot' does not use /pgfplots as search path
+
+
++ implement partial limit specification, for example 'xmin=5' -> only compute
+ 'xmax'
+
++ check gnuplot on windows - there appear to be semicolon problems!?
+
++ again, the disabledatascaletrafo key does not seem to work correctly. Check it!
+
+X active semicolons may be a problem
+
++ [ CF: for tikzlibraryexternal : use double quotes instead of single quotes in
+ system calls -> win32 doesn't support single quotes ]
+
++ problem with context: even simple images do not work correctly. Why does the example work!?
+
++ table package: 'array' required for some examples -> document
+
++ handle 'nan' and +-inf in plots
+
+- 'every axis plot post' is not reflected in legend (at least not properly)
+
++ plot function: incompatibility with 'german' package and " catcodes
+
++ improve error recovery
+
++ grid lines and tick lines can obscure the axis lines, especially when used
+ with different colors.
+ -> draw axis lines on top of tick/grid lines!?
+ Or more generally: change drawing sequence to
+ 1. grid lines
+ 2. tick lines
+ 3. axis lines
+ 4. tick labels?
+
- extra ticks can be disabled by the tick special cases for axis lines (when two
axis lines cross each other)
-- \addplot plot[#1] does not use /pgfplots as search path
-
+ eliminate any public reference to the '\\'-lists. They are inconsistent with PGF.
+ use '{}' for sci 'e' style - looks better
@@ -36,7 +102,7 @@ BUGS
+ ytick=\empty is broken again :-(
-- if a logplot has very small axis ranges, only ONE tick label will be placed.
++ if a logplot has very small axis ranges, only ONE tick label will be placed.
Thats not enough.
In such a case, tick labels should be placed at MINOR TICKS [2-9]*10^i.
BTW:
@@ -101,72 +167,136 @@ X Fix the scaling estimations.
X verschiebung des ylabels ist komisch, wegen der rotate option
-+ die standard-positionierung der achsenlabels beruecksichtigt nicht die breite
- der ticklabels - entweder ist es daher zu weit weg oder zu nah
-+ tickpos packt nur die ticks woanders hin, nicht die tick labels
+-------------------------------------------------------------
+FEATURES
+-------------------------------------------------------------
+
+- it would be interesting to get an high-level coordinate mapping
+ X : K -> \R
+ X(k) \in \R is the x-coordinate.
+ Idea: K can be any type of input, for example
+ - time,
+ - date,
+ - strings,
+ - ...
+ and K maps this transparently to numbers. Then: *all* input is given in K, and
+ all output (tick labels) are given in K as well (requires X^{-1}).
+ -> that's not difficult.
-+ das log-ding prueft nicht auf 0. was soll es dann ueberhaupt tun!?
-+ das log-ding kann
- 1e7 nicht lesen, nur 1.0e7
++ styles are named very unintuitively. I should add something more convenient
+ (for example like the 'legend style={}' command). Idea: use the *same* name
+ as the options which are affected,
+ 'xlabel style' 'title style' etc. My current naming scheme used the name of
+ the 'every style' which suffer from backwards compatibility with xkeyval...
+ :-(
-+ wenn man jetzt ticks angibt, sieht man die rechenfehler angezeigt. das ist
- doof. Vllt. kann ich ja zugriff auf die normalisierte gleitpunktdarstellung
- bekommen und so das als 10^i darstellen??
- HALT: die ticks WAREN doch mal als normale zahlen gegeben, oder? Die sollte
- ich nehmen!
+- maybe it is possible to eliminate a lot of key macros to save string space?
+ Those family macros can be optimized (sure ?).
-+ bei bel. ticks moechte ich nur ne gewisse anzahl stellen im tick label haben!
+- provide access to axis limits and data bounding box.
-+ beim auto-limit-lesen geht
- \addplot[color=red,mark=x]
- plot coordinates { ... }
- nicht wegen nervigen white spaces.
- genauer: das whitespace nach ']' verwirrt TeX. NERV.
+- It would be useful to get access to axis coordinates, for example in 'circle (XXX)'
-+ autoscale option ist falsch benannt. Die muesste enlargecanvas oder so
- heissen.
+- axis equal option
-+ die Achsenticks in der y-log-achse werden nicht geclipped
+- consider 'plot image[xmin=,xmax=,ymin=,ymax=] {<graphics>};
+ -> load external plot image!? Only useful for matlab, if matlab would allow 100%
+ control over bounding box. Unfortunately, it doesn't.
-+ bei nicht-integer-xmin oder ymin sollte der TICK nicht zur 0 hin runden,
- sondern immer nach unten. Das funktioniert derzeit nicht bei negativen zahlen.
-
+- allow extended <col name> arguments inside of create column
-+ die Achsenticks werden nicht geclipped
++ is it possible to create a *real* linked list? It should have the following
+ features:
+ 1. O(1) push/pop operations
+ 2. O(N) copy()
+ 3. O(N) convert to macro list
+ 4. O(N) traversal/loop
-+ die Achsenbeschriftung wird nicht geclipped
- + halb geloest: muss die sachen in tex-dimensionen parsen...
++ introduce \label and \ref for legend entries?
++ optimize tikz-interface
-+ wenn man [xy]ticks nicht mit 1-abstand waehlt, werden die minor ticks
- angezeigt
++ optimize macro-append issue from O(N^2) time to O(N)
-+ durch skalieren mit [x=2cm] werden die tick-breiten mit skaliert
++ create a \pgfmathfloattosci method and use that for the numerics in table package
-X durch die verwendung der TEX-Register scheinen ungeauigkeiten beim clippen
- aufzutreten:
- man sieht sachen, die aus der ungebungsbox rausragen.
+X re-implement 'dec sep align' of table package natively, not as high-level
+ style.
++ It is not (easily) possible to replace single entries of tables with '-'.
+ (for example: gradient columns)
-+ diese liste sollte nicht '\\' fuer die interne repr verwenden.
++ create a \pgfmathfloattosci method and use that for the numerics in table package
+- check whether the new floating point routines can be used to
+ REALLY setup a linear map DATA RANGE -> DISPLAY RANGE
+ Technical thing: map the CLIPPED data range or the TOTAL data range?
+ What advantages/disadvantes appear?
-+ fuehre optionen fuer die legende ein
- (position, font)
+- [Tikz] document how to use internal registers can be used in libraries.
-+ wenn man mit 'font=\large' die gesamt fontgroesse anpasst, werden die legenden
- bei 'auto' konfiguration nicht mit breiter.
++ [Tikz] add an 'every plot mark' option and adjust 'mark options' accordingly
- Abhilfe vllt.: hole irgendwoher das '\font' argument ....
++ document the 'external' library of tikz (CVS only).
-X Die gesamtbreite enthaelt zu viele nur grob einkalkulierte einfluesse!
- - rechts gibt es einen randbereich; vermutl. durch ticks
- - links gibt es das ylabel und die y-achsenbeschriftung
++ group 'All supported styles' section by content
+
+
++ allow arrow heads or other axis line styles
+ + styles for axis lines are missing
+ + for outer axis lines: introduce option 'separate axis line paths'
+ if one wants to use arrow heads
+
++ set default styles for non-boxed axis labels
+ + label positions for centered axis lines
+ + tick scale labels
+ + tick align versus label positions
+ + think about axis label placement. Possibilities:
+ - on the same side as tick labels.
+ -> should be move away in normal direction
+ -> should avoid problems with tick scale labels
+ - opposite of tick labels
+- perhaps math style {grid=major, axis x line=middle, axis y line=center, tick
+ align=outside}
+
+
++ the table package could use some sort of multicolumn feature which
+ allows something like 'columns={A,B,A,B,A,B}' and distributes entries of input
+ columns A and B equally to output columns.
+
++ TDS directory structure is not completely correct. Should be everything under
+ directory 'pgfplots':
+ $package = "pgfplots";
+ &SYSTEM ("$MV README ext_scripts test doc/generic/$package/");
+ &SYSTEM ("$MV generic tex/generic/$package/");
+ &SYSTEM ("$MV context latex plain tex/");
+ and context files should be in
+ tex/context/third/pgfplots/...
+ doc/context/third/pgfplots/...
+ (reference: mail conversation with Karl Berry)
+
+
++ automatic disabling of enlargelimits when axis lines are not drawn as a box
+
++ copy my personal' homepages short images to pgfplots website
+
+- interrupt single plots at discontinuities (for example tan(x))
+ -> don't draw from +infty to -infty
+
+- optimize plot expression
+
++ optimize tick generation code for speed
+
++ alias 'axis x line=middle' and 'axis x line=center'
+
++ an option which contains legend ENTRIES?
+
++ the non-boxed axis lines are placed at 'ZERO'. Maybe this zero level should
+ get an anchor!? -> allows to place axis labels above it
+
+- default style for axis lines to: {thin, black!25} ?
--------------------------------------------------------------
-FEATURES
--------------------------------------------------------------
X implement an axis as path-command
@@ -178,18 +308,6 @@ X implement an axis as path-command
+ Maybe I could perform a restore of the current bounding box at the END of an
axis. Restore means: restore to the setting BEFORE the axis.
- This is useful if
- - the size of the inner axis
- - the size of the final axis
- remains known until after the complete axis.
-
- Motivation: the axis as such can have NO contribution to the pictures dimension,
- and the user can call '\useasboundingbox (inner axis.north east) rectangle
- (inner axis.south west);
- or something like that.
-
- This affects \pgf@picminx and the other variables, see the manual.
-
+ I could create a node which can be referenced and which has the axis' size
[ That touches another open problem, see below]
@@ -211,93 +329,8 @@ X implement an axis as path-command
'#2' as just the current plot spec OPTIONS.
-+ prettyprintnumber is not adequate.
- There are different aims:
- 1. The user provides
- + precision
- + number format (sci, fixed, truncate to int, 'whatever fits best')
- + the number in any precision or format.
- Details:
- + I need \scifloatround
- + sollte die mantisse einer exponential-darstellung runden
- + erfordert u.U. renormalisierungen
- + the fixed point rounding routine needs to distinguish between
- + MAXIMUM precision, 1.000 -> 1
- + FIXED precision 1.000 -> 1.00
- + the 'std' format should use
- + fixed point if
- -4 < e < precision
- + scientific in all other cases.
- + this is copied from 'printf' manual. Motivation:
- - 0.00013 wastes more space than 1.3e-4 and the latter
- one may have higher precision.
- - with precision 3, exponent > precision like 12345 =
- 1.2345e4, the fixed point repr has as much digits as
- the sci format. If exponent >> precision, it is
- better to use scientific notation and round the
- mantisse to 'precision'.
- 2. The user says "show the information appropriately". Examples:
- - "format my axis tick labels so that information is represented well
- with very few space"
- - "format my numbers such that absolute values above THRESH1 are
- formatted with SCI, and absolute numbers below THRESH2 are formatted
- with SCI, and those within with fixed pt.
- - "format my numbers relatively to a reference number - I want to see
- the difference!"
- That may also be an appropriate choice for axis descriptions...
- -> these informal requirements should be converted into a precise
- definition. They should be available as configurable, predefined
- "display strategies".
- 3. The user may not only want to specify the NUMBER FORMAT (sci, fixed, ...),
- but maybe he also wants to CONFIGURE THE GENERATED STRINGS. Examples:
- - '1.002' vs '1,002' vs '1\cdot 002' , ...
- - '1\cdot 10^4' vs '1e4' versus '1e+4' versus '1_{4}', ....
- -> allow such possiblities.
- Details for the display-methods (they don't round!):
- - for log-displays: call \shownumberexponential{1}\empty\exponent
- -> 10^i; 10^{0.702}
- -> the precision should be used to round the exponent!
- -> round exponent with \shownumberfixedpt.
- Well, maybe a separate method like
- \shownumberlogdisplay\exponent would be more appropriate.
- - for scientific format: call
- \shownumberexponential\sign\mantisse\exponent
- There are different possible methods to display \mantisse:
- + MAXIMUM precision
- + FIXED precision
- The same holds for the exponent:
- - zero-pad to X digits
- - minimum space
- - for "normal" numbers, either with fixed or maximum precision:
- \shownumberfixedpt\preperiod\postperiod
- -> this should also be used for \mantisse!
- My idea is that any input number HAS a period; then I simply need
- to divide into the part before and after that.
- -> conflicts with the idea of rounding: the rounded result may be
- an integer!
- Maybe I can return the \preperiod and \postperiod parts from the
- rounding-routines.
- Ideas:
- + prettyprintnumber should access a bunch of configuration variables.
- + these variables should be configurable by a key-value-parser.
- + there should be a key-value-interface for prettyprintnumber, but it would
- be best if that one is not necessarily needed. Most applications will not call
- prettyprintnumber directly; they will configure the number format once and
- invoke prettyprintnumber without options.
- At least I think so....
- - I could create a tabular-column format for column pretty printing
- (possibly with alignment)
- - I guess I can take the manual for printf and re-implement all of its
- features (together with some of LaTeX like subscript exponentials or so)
-
-- document 'legend plot pos' option
-
-+ Most of my loops are quite inefficient. I have learned how to employ
- \@ifnextchar (or the PGF-pendant) to create efficient loops on top of TeXs
- parser:
- - use \@ifnextchar to check for a TERMINATE token and recurse otherwise.
- - linear runtime
- - I fear, my loops have quadratic runtime
+
++ document 'legend plot pos' option
+ there are some clipping paths in the tick-placement loop which can be
replacement with simple \ifdim's.
@@ -308,28 +341,6 @@ X implement an axis as path-command
them like '\tick' during ticklabel typesetting
-+ Es sollte unbedingt moeglich sein, die TikZ-Styles zu verwenden. Das
- \axispreset ist reichlich nervig und inkonsistent mit der restlichen nutzung
- -> optimal:
- \path (0,0) axis[xlabel=X,width=...] {
- \addplot plot coordinates {...};
- };
- or
- \path (0,0) axis[xlabel=X] {
- \addplot plot coordinates {...};
- }
- (1,1);
- and the scaling would create a plot of dimension (1*x,1*y).
-
- What do I really need?
- - Path commands,
- - style support,
- - ... ?
-
-- provide accessable names for external axis labels, for example
- \path[use as bounding box] (0,0) rectangle (1,1) (axis x label.south);
- -> would only use the axis rectangle and the x label as bounding box.
-
+ improve tick placement (more) systematically
+ provide auto tick labels at 5*i if appropriate
@@ -346,43 +357,8 @@ X implement an axis as path-command
10^0.703 vs fixed point format
+ I could provide a global coordinate transformation
- T(x) = x * 10^{q-m}
- where 'q' is the desired range of numbers. It depends on TeXs numerical
- capacities and the desired size (cm) of the plot.
-
- The number 'm' is the order of the input data, \abs{x} \in O(10^m).
- Advantages:
- - such a transformation is purely based on period shifts
- (multiplication/division by 10)
- and is therefor purely TEXT BASED
- - one can avoid TeXs limitations on numbers
- - the full plot precision is maintained
- Disadvantages:
- - takes some more time,
- - any \axispath commands need to use the transformation as well
- - I need to provide a good implementation of T and T^{-1}
- - needs a lot of care in programming
- Ideas:
- - the transformation could be included into my 'filter coordinates'
- framework. However, one special treatment has to be done because
- the transformation can only be done as soon as axis limits are known.
- I guess it would be better to transform BEFORE TikZ touches the first
- point.
- - I should use my normalized floating point parser, possibly with some
- simplifications
- + implement numerics on floating point repr
- + less than,
- + minimum,
- + format conversions,
- + arithmetic shifts
- - Maybe I could be evil and overwrite PGF's number parsing routine(s)
- (\pgfmathparse?)
- Advantage: I could apply log to user input; I could apply this
- transformation transparently
- -> maybe the number parsing is only performed by TikZ routines, not the
- lowlevel PGF ones... perhaps thats easier to replace?
-
-- I could try to use the plot-stream framework of PGF directly instead of using
+
++ I could try to use the plot-stream framework of PGF directly instead of using
the 'plot coordinates' command of tikz.
Advantage: would be faster. And the additional features can't be used anyway
because of my own number parsing routines...
@@ -395,8 +371,6 @@ X implement an axis as path-command
+ axis hide option ? macht das sinn?
-- axis equal option
-
+ legende anders formatierbar?
- ausserhalb des (und isoliert von dem) plots?
+ horizontal?
@@ -406,12 +380,6 @@ X implement an axis as path-command
+ major
-> einfach als verlaengerung der kleinen tick lines
-- hintergrundfarbe des plots auf "weiss" fixierbar
- -> sinnvoll fuer vortraege, bei denen anderer hintergrund ist
- - option: GANZER plot oder nur achse
-
-- je eine autoplotspeclist fuer jeden achsentyp (d.h. 4 insgesamt)
-
- es gibt scheinbar in PDF viewern die moeglichkeit, fuer den Druck ein anderes
dokument/dokumentteile zu verwenden als fuers Bildschirmbetrachten
(draft-package bspw?).
@@ -419,7 +387,7 @@ X implement an axis as path-command
-> pruefe draftcopy paket
-- koennte man den kram auch aus (grossen) tabellen rauslesen? Also sowas wie
++ koennte man den kram auch aus (grossen) tabellen rauslesen? Also sowas wie
"plot X versus Y aus file Z"?
-> DEBUG!
Ideen:
@@ -449,43 +417,15 @@ X implement an axis as path-command
+ automatisches tick-platzieren koennte verbessert werden
-> insbesondere fuer normale plots
-- fehlerbars waeren nett
-
-- es waere schoen, wenn man auf legend extern zugreifen koennte oder diese sogar
- plotten koennte
-
-+ es waere nicht schlecht, wenn man die ticklabels bessere angeben koennte
- z.B.
- ticklabellist={1\\2\\3\\}
- oder so
++ fehlerbars waeren nett
-- prettyprintnumber: sollte SCI benutzen, wenn underflow
+ baseline option, die die linke unter ecke als '(0,0)' koordinate annimmt.
Wuerde generell sinn machen, oder?
-- andere plot-befehle
- - domain option verwenden zum update der limits
- - kann man logs anwenden?
- - plot function
- + plot file
- + plot table[x=column1,y=column4]
- - plot (...)
- -> see tikz.code.tex for how to implement that!
-
-- es waere schoen, wenn ich die ANZAHL der sinnvollen ticks angeben wuerde, d.h.
- TICKS PRO ACHSE anstelle von TICKS PRO UNIT DIFFERENZ
-
-- ich haette sehr gerne ein Skript, dass zu jeder figure ein eps und/oder pdf
++ ich haette sehr gerne ein Skript, dass zu jeder figure ein eps und/oder pdf
macht, dass dann bitte schoen ordentlich includiert wird.
-
- DAS FUNKTIONIERT AUCH; siehe meine entsprechenden bemuehungen in dem skript.
-
- PROBLEM:
- - der support fuer dvipdfm ist lausig.
- 1. kein korrektes bestimmen der bounding box
- 2. beim lesen sucht er nach '\includegraphics{zeug.PDF}', was natuerlich
- NICHT funktioniert, weil das pdf keine bounding box hat. supi.
+ -> see tikzexternal june 2008
+ passe bounding box und x/y-skalierung "sinnvoll" an.
@@ -534,10 +474,10 @@ X implement an axis as path-command
+ option, minor ticks ein/auszuschalten
-- option, die X/Y-Achsen anders zu formatieren. Moeglichkeiten:
- - Kasten drumrum
- - je eine Linie mit Pfeil am Ende
- - Achse nach rechts oder so
++ option, die X/Y-Achsen anders zu formatieren. Moeglichkeiten:
+ + Kasten drumrum
+ + je eine Linie mit Pfeil am Ende
+ + Achse nach rechts oder so
+ aendere die das \addplot makro derart, dass beliebige plot-moeglichkeiten
folgen koennen