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.txt403
1 files changed, 330 insertions, 73 deletions
diff --git a/Master/texmf-dist/doc/latex/pgfplots/todo.txt b/Master/texmf-dist/doc/latex/pgfplots/todo.txt
index 49d55dc2452..2c27f484bbd 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/todo.txt
+++ b/Master/texmf-dist/doc/latex/pgfplots/todo.txt
@@ -1,32 +1,77 @@
-------------------------------------------------------------
-FLEISS:
+BUGS
-------------------------------------------------------------
-+ mache paket-abhaengigkeiten + versionsnummern ordentlich.
-
-- implementiere irgendwas, sodass \ref{} und \label{} auch fuer plots benutzt
- werden koennen. Ziel: suche die plotspec zum letzten plot raus!
++ axis limits of zero width are not fixed causing division by zero
-- dokumentiere trim-feature (oder shcmeisse es raus)
++ ytick=\empty is broken again :-(
-+ dokumentiere filter-feature
- + xfilter
- + yfilter
- + execute at begin plot
- + execute at end plot
+- 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:
+ if someone places tick marks at [1-9]*10^i, the minor ticks should NOT be
+ disabled.
+ Instead, tick positions should be RECOGNISED AS MINOR TICKS (which is not
+ that simple).
-- aktualisiere doku fuer die neue log-evaluation
- + listing <-> axen konsistenz
- + textanpassungen
- + semilogxaxis - beispiel + doku
+- bei normalen plots wird der parser nicht angeworfen
-+ dokumentiere beispiel mit steigungsdreieck
-
-+ verwende die neuen umgebungen 'loglogaxis', 'semilogaxis' etc.
++ die legend[font=] variable ist doch dasselbe wie in dem tikzstyle zu legenden,
+ oder? warum funktioniert es dann anders?
--------------------------------------------------------------
-BUGS
--------------------------------------------------------------
+- implementiere enlargelimits fuer log-achsen
+
++ markers werden rausgeclipped, wenn die achsen TIGHT sind.
+
++ man kann keine leeren listen an tick labels uebergeben!
+
++ width/height produziert NICHT die gewuenschte breite.
+ Man sollte ne zusatzoption haben, die die labels grundsaetzlich NICHT
+ beruecksichtigt.
+
+X Fix the scaling estimations.
+ Problem: I don't know sizes of labels, legends, titles and tick labels.
+ Idea:
+ -Create a temporary picture
+ \hbox{%
+ \begin{tikzpicture}[xshift=...,yshift=...] % skaliere auf (0,0)--(1,1)
+ \draw (0,0) rectangle (1,1)
+ plaziere labels + legende + vllt. ein tick auf jede achse (?)
+ \end{tikzpicture}
+ }%
+ - measure and remember its size
+ - throw it away
+ -> 9.2.2008:
+ ATTEMPT FAILED.
+ Reasons:
+ 1. it is not possible to place a tikzpicture into a tikzpicture.
+ And it can't be because Tikz updates bounding box parameters GLOBALLY.
+ 2. I could use a combination of
+ - scope,
+ - the 'current bounding box' node,
+ - \pgfpointanchor{current bounding box}{ anchor name },
+ - drawing commands for labels,legend etc.
+ Effect: bounding box is determined correctly. BUT:
+ - bounding box of real picture may be affected,
+ - every output is drawn because nodes can't be 'thrown away'.
+ At least I do not know how.
+
+
++ enlargelimits muss RELATIV nicht ABSOLUT gemacht werden.
+
++ es gibt einen fehler in der achsen skalierung, wenn
+ man sehr grosse limits hat (normale achsen)
+
++ default ticks muessen besser an achsenlimits angepasst werden
+ -> bei sehr grossen oder sehr kleinen limits schlaegt die derzeitige
+ einschraenkung der step sizes fehl
+
+- addplot plot coordinates { (235 , 43252) }
+ ^
+ funzt nicht wegen dem leerzeichen vor dem komma
+
+- 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
@@ -38,16 +83,13 @@ BUGS
+ das log-ding kann
1e7 nicht lesen, nur 1.0e7
-- wenn man jetzt ticks angibt, sieht man die rechenfehler angezeigt. das ist
++ 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!
-- bei bel. ticks moechte ich nur ne gewisse anzahl stellen im tick label haben!
-
-- die legend[font=] variable ist doch dasselbe wie in dem tikzstyle zu legenden,
- oder? warum funktioniert es dann anders?
++ bei bel. ticks moechte ich nur ne gewisse anzahl stellen im tick label haben!
+ beim auto-limit-lesen geht
\addplot[color=red,mark=x]
@@ -81,10 +123,6 @@ X durch die verwendung der TEX-Register scheinen ungeauigkeiten beim clippen
+ diese liste sollte nicht '\\' fuer die interne repr verwenden.
-X meine achsenlimits gehen immer in log10 waehrend der rest wohl eher ln ist!
- das hat alles seine richtigkeit.
-
-+ die legende ist zu breit.
+ fuehre optionen fuer die legende ein
(position, font)
@@ -102,7 +140,267 @@ X Die gesamtbreite enthaelt zu viele nur grob einkalkulierte einfluesse!
FEATURES
-------------------------------------------------------------
-- es waere nicht schlecht, wenn man die ticklabels bessere angeben koennte
+- 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
+
+- there are some clipping paths in the tick-placement loop which can be
+ replacement with simple \ifdim's.
+ I guess clipping is not the cheapest operation.
+
+
+- remember unfiltered (non-logarithmized) input ticks with \listnew and provide
+ 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
+
++ implement the legend as tikz-matrix
+ -> width computation works correctly (there is a bug with font scaling)
+
++ provide tick labels as a list like
+ axis[tick labels={A,B,1,4,5,$\frac 12$}]
+ -> convert to \listnew, use listpopfront to access elements
+
+
+- provide options for log plot tick formatting:
+ 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
+ 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...
+
++ rename manual.pdf to pgfplots.pdf -> allows texdoc pgfplots
+
+
++ alignment: vertikal kann ich jetzt mit baseline. Kann ich horizontales
+ alignment an (0,0) hinbekommen?
+
++ axis hide option ? macht das sinn?
+
+- axis equal option
+
++ legende anders formatierbar?
+ - ausserhalb des (und isoliert von dem) plots?
+ + horizontal?
+
++ grid lines
+ + minor
+ + 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?).
+ Kann man das nutzen, um sowohl farbige als auch S/W-plots zu generieren?
+ -> pruefe draftcopy paket
+
+- koennte man den kram auch aus (grossen) tabellen rauslesen? Also sowas wie
+ "plot X versus Y aus file Z"?
+ -> das geht sicher!
+ Ideen:
+ - abstrakte datenstruktur als liste von spalten, eine spalte ist ne liste
+ von nummern
+ - einlesen:
+ - zeilenweise, haengt an die jeweiligen spalten mit \listpushback
+ coordinaten dran
+ - read first line as header (optionally my $flags line for column
+ formatting advice)
+ - read just strings, no parsing
+ - optimal: '\t' as separator. How can I teach TeX to use '\t' as
+ separator!?
+ - would allow
+ \addplot plot table[x=X,y=Z] {\table}
+ and
+ \typesettable[columns=...,format=sci,...,formatting options=...] {\table}
+ - implementation: simple run through column lists
+ -> I need a method for simultaneous traversal of multiple lists, not
+ difficult
+ -> CONSISTENT data representation, powerful display options
+
+
+
++ man sollte \addplot mit '+[OPTIONEN]' starten koennen.
+
++ ich sollte das enlargelimits deaktivierbar machen! vllt. auch ne option 'tight'
+
++ 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
+
+- 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 (...)
+ -> 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
@@ -118,29 +416,6 @@ FEATURES
2. beim lesen sucht er nach '\includegraphics{zeug.PDF}', was natuerlich
NICHT funktioniert, weil das pdf keine bounding box hat. supi.
-- ich brauche ne einbindung als Tikz paket. Ich wuerde bspw. gerne mit
- tikzstyle{every axis}=[width=0.5\textwidth] oder so arbeiten koennen.
- Wie geht das?
-
-- vllt. waere sowas wie 'filter' nicht schlecht: plotte einfach nichts, was
- ausserhalb eines gewissen domains liegt
-
-- mache die default styles etwas professioneller: statt hellere marker lieber
- dunklere
-
-- ich brauche ne option, die verspaetetes drawen erzwingt [selbst mit geg.
- limits].
-
-- ich koennte log implementieren.
- EINGABE:
- x = +m*10^e
- -> log(x) = log(m) + e*log(10)
- d.h. ich muesste nur ne implementierung fuer
- log(m), 0<m<1 finden.
-
- Ich koennte auch ne beliebe Zahl x=DDDDD.DDDDDDD in SCI format konvertieren,
- indem ich einfach kommas verschiebe und mitzaehle. Das geht alles ohne
- tex-register!
+ passe bounding box und x/y-skalierung "sinnvoll" an.
+ mache ne option "width=" die die GESAMTbreite angibt.
@@ -158,11 +433,9 @@ FEATURES
+ Nur mit der 'x=' bzw. 'y=' option sollte es NACH AUSSEN moeglich sein,
direkt einfluss auf die koordinaten zu nehmen.
-- entscheide automatisch, ob der abstand zwischen ticks an die skalierung
++ entscheide automatisch, ob der abstand zwischen ticks an die skalierung
angepasst werden sollte.
-- Einbinden als Tikz-Library
-
+ [xy]min = auto
-> berechne die werte numerisch
Ideen:
@@ -200,19 +473,3 @@ FEATURES
\addplot[OPTIONS] plot coordinates {...};
-> das \addplot ersetzt gewissermaßen das \draw
--------------------------------------------------------------
-Implementierungsideen
--------------------------------------------------------------
-+ Eine einfache Datenstruktur mit
- + push_back
- + create
- + copy
- + pop_front()
- + get(i)
- waere sehr hilfreich.
- Mir schwant sowas wie eine reihe von makros \array@index ... das kann man aber
- nicht loeschen :-(
- alternativ geht natuerlich
- \array{{1}{2}{3}}
- oder so. Das verbraet nur eine variable, hat aber hohe zugriffszeiten
-