------------------------------------------------------------- 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) + eliminate any public reference to the '\\'-lists. They are inconsistent with PGF. + use '{}' for sci 'e' style - looks better + the tick scale labels are inadequate. 1. Formatting 2. maybe they should be disabled at all!? + specifying axis limits for X should also limit those for Y (some sort of clipping) - the text height of every axis x tick should be adjusted to allow tick scale labels on the same vertical alignment -> bug in pgf: text height does not properly respect to the current font!? + the new \pgfkeys framework: + I have re-implemented all options with \pgfkeys. this allows styles and mixing of TikZ/pgfplots options. + BUG: if someone provides FULL keynames, the method WILL FAIL. + the style= option fails. + the 'x=' and 'y=' options fail. + every option which exists in both, pgf and tikz, will fail! + 'legend style' fails + the 'legend style, grid style, x label style etc. options' test fails + axis limits of zero width are not fixed causing division by zero + ytick=\empty is broken again :-( + 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). + die legend[font=] variable ist doch dasselbe wie in dem tikzstyle zu legenden, oder? warum funktioniert es dann anders? + 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 X verschiebung des ylabels ist komisch, wegen der rotate option ------------------------------------------------------------- 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. + 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... :-( - maybe it is possible to eliminate a lot of key macros to save string space? Those family macros can be optimized (sure ?). - provide access to axis limits and data bounding box. - It would be useful to get access to axis coordinates, for example in 'circle (XXX)' - axis equal option - consider 'plot image[xmin=,xmax=,ymin=,ymax=] {}; -> load external plot image!? Only useful for matlab, if matlab would allow 100% control over bounding box. Unfortunately, it doesn't. - allow extended arguments inside of create column + 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 + introduce \label and \ref for legend entries? + optimize tikz-interface + optimize macro-append issue from O(N^2) time to O(N) + create a \pgfmathfloattosci method and use that for the numerics in table package 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) + 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? - [Tikz] document how to use internal registers can be used in libraries. + [Tikz] add an 'every plot mark' option and adjust 'mark options' accordingly + document the 'external' library of tikz (CVS only). + 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} ? X implement an axis as path-command + implement proper anchors + provide simple options for useful bounding box truncations + 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. + I could create a node which can be referenced and which has the axis' size [ That touches another open problem, see below] + I could use the new 'local bounding box' option of PGF to restrict the bounding box to the axis' size + I also need some sort of number style for log-tick-labels. + move math mode shifts into \prettyprintnumber implementation. + allow the '-plot' commands. It would be a cool feature if '(FIRST_X,0)' could be inserted as move-to operation before every plot. -> one could make funny features with 'fill' in plot styles. - make the legend code more general: allow \addformattedlegendentry{ \node{hallo} \nextcell \node{foo} \nextcell #1} where #1 is the auto-generated small plot-spec image. One could also provide '#2' as just the current plot spec OPTIONS. + document 'legend plot pos' option + 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 + 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 + 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? + legende anders formatierbar? - ausserhalb des (und isoliert von dem) plots? + horizontal? + grid lines + minor + major -> einfach als verlaengerung der kleinen tick lines - 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"? -> DEBUG! 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 -> 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 + baseline option, die die linke unter ecke als '(0,0)' koordinate annimmt. Wuerde generell sinn machen, oder? + ich haette sehr gerne ein Skript, dass zu jeder figure ein eps und/oder pdf macht, dass dann bitte schoen ordentlich includiert wird. -> see tikzexternal june 2008 + passe bounding box und x/y-skalierung "sinnvoll" an. + mache ne option "width=" die die GESAMTbreite angibt. + mache "height" option + belege width und height defaultmaessig sinnvoll + ueberlege ein sinnvolles gesamt-skalierungs-konzept. Das, was ich jetzt gebaut habe, mit 'x=SCALE' und/oder 'y=SCALE' ist nicht ausgereift und eher verwirrend. sowas macht man wohl besser mit pgf-skalierungen! + Die 'x=' und 'y=' optionen sollten direkt in setxvec reingeschrieben werden, ohne schwachfug mit skalierung! + wenn ich 'width=BLA' angebe, wird automatisch 'y=1cm' angenommen. Das ist unintuitiv; man erwartet eher, dass defaultheight im aspect ratio mitskaliert wird. + 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 angepasst werden sollte. + [xy]min = auto -> berechne die werte numerisch Ideen: + verzoegere das malen der Achse bis \end{axis} + in jedem \addplot: ich koennte irgendwie pruefen, ob ich 'plot coordinates' habe. Sobald ich diesen modus erkannt hab, kann ich koordinate fuer koordinate parsen und jeweils min/max bilden. + ich muesste dann noch den befehl in einem makro konserieren, sodass er spaeter, nach dem verzoegerten achsen malen kommt. OFFEN: was passiert, wenn NICHT plot coordinates benutzt wird? Vllt. die 'domain' variable abfragen? -> jedenfalls koennte ich mir da durchaus was ueberlegen! + [xy]tick = auto in abhaengigkeit von [xy]mode: zeige ticks von floor(xmin)...ceil(xmax) + mache styles: + every plot + every axis (?) + gebe eine liste von verfuegbaren linestyles an, durch die mit jedem plot-befehl durchgecykled werden kann + 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 + aendere die das \addplot makro derart, dass beliebige plot-moeglichkeiten folgen koennen \addplot[OPTIONS] plot coordinates {...}; -> das \addplot ersetzt gewissermaßen das \draw