diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/pgfplots/todo.archive.txt')
-rw-r--r-- | Master/texmf-dist/doc/latex/pgfplots/todo.archive.txt | 1276 |
1 files changed, 1276 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/pgfplots/todo.archive.txt b/Master/texmf-dist/doc/latex/pgfplots/todo.archive.txt new file mode 100644 index 00000000000..01760a95199 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pgfplots/todo.archive.txt @@ -0,0 +1,1276 @@ +------------------------------------------------ +BUGS +------------------------------------------------ + ++ mark position clipping may fail: see + \begin{tikzpicture} + \begin{axis} + \addplot3[surf,shader=faceted, + scatter,mark=*, + samples=10,domain=0:1] + {x^2*y}; + \end{axis} +\end{tikzpicture} + in the manual (shader docs) + ++ patch plots: type rectangle & shader=interp & mesh input=patches doesn't work + correctly as it seems. + ++ \ref{} legends for 'surf' in unstable version do not work properly + ++ plot graphics braucht + every legend image post/.append style={sharp plot} ++ extra ticks need a scope to enable drawing options: + \begin{axis}[ + extra x ticks={0.7}, + extra x tick style={ + line width=3mm, + color=red, + tickwidth=3mm, % <-- only thing applied + }, + ] + \addplot coordinates { (0,0) (1,1) }; + \end{axis} + + ++ new coordmath framework is broken for log basis. + TODO: 1. the functions must be parameterized with A) the coordmath class *and* + B) the coordmathid. + For example 'pgfmath,x' and 'pgfmath,y'. Everything else doesn't work... + ++ \ref and detached legends/colorbars do NOT work with external library and + convert with system call. + -> provide special handling! + ++ providing 'thick' to linespecifications causes problems during the survey + phase: \pgfmathsetlength{} will use the FPU. ++ contour external: the \jobname dependend auto-file name will make problems + together with the external lib (the numbers won't be unique). + Perhaps I can fix that by using the external figure name instead? Or does that + already work? + ++ stack plots + log scale is wrong: it stacks visually, but that's more or less + meaningless. Try + ++ polar axes: + + \pgfplotspointouternormalvectorofaxis + is not good enough; it needs the coordinate on that axis to work. + -> IDEA: provide a further variable which fixes the 'v' direction of + that axis. + + axis lines should use the recently introduced framework for grid lines: + draw them as grid lines at upper/lower limits + -> will work automatically for polar axes. + ++ colormap={mymap}{[0.5cm] rgb(0cm)=(0,0,1); rgb(10cm)=(1,0,0); rgb(11cm)=(0,1,0) } + is ok, [1cm] is also ok. But [0.1cm] doesn't work and produces + Sorry, non-uniform colormaps are only partially imple mented, yet: the + provided points must be multiples of the mesh width h=2.84544p t. Perhaps it + helps to provide the mesh widths as argument as in {<name>}{[1cm] <color + arguments>}? + -> BTW: error message could be improved somehow! + + ++ plot handlers should be allowed to overwrite + \pgfplots@plothandler@unbounded@visualize@jump + --> mesh already does it. + ++ the 'enlarge x limits={abs=3}' key doesn't work: it increases the lower + limits, but it doesn't draw any tick labels (neither major nor minor) + ++ nodes near coords and ybar stacked do not work + ++ nodes near coords,ybar and a scale inside of nodes near coords doesn't work + \begin{tikzpicture} + \begin{axis}[ybar, width=\linewidth, xtick=data, font=\tiny, ymax=950, minor y tick num=1, nodes near coords, point meta=y-901, every node near coord/.append style={scale=0.7,anchor=south, inner xsep=0pt}, nodes near coords align={above}] + % VSM + \addplot+[mark=*] coordinates {(0,896) (1,700) (2,845) (3,834) (4,921) (5,921) (6,917)}; + % BM25 + \addplot+[mark=*] coordinates {(0,833) (1,641) (2,844) (3,820) (4,904) (5,919) (6,914)}; + % LM + \addplot+[mark=*] coordinates {(0,703) (1,601) (2,654) (3,661) (4,901) (5,904) (6,901)}; + \draw[gray, dashed] (axis cs:0, 901) -- (axis cs: 6, 901); + \end{axis} + \end{tikzpicture} + ++ portability of externalized \label commands: define \tikzifinpicture which + should be part of the external separate package (in which case it is always + false). ++ the 'colorbar sampled line' and 'colorbar left' styles are incompatible: + there are no tick lines. + +X bug in linux printer drivers: colorbar shadings are not interpolated + correctly, the interp shadings work (also the colormap sampled style). + Version: + Linux 2.6.24-26-generic #1 SMP Tue Dec 1 17:55:03 UTC 2009 x86_64 GNU/Linux + + ++ the colorbar with surf mode is too short; the 3D colorbar axis won't be scaled correctly + ++ the 'at' key appears to be broken. It happens if + - pgf 2.00 is used, + - at=(anode) is used where (anode) was originally in a different axis + ++ gnuplot compatibility is broken since gnuplot 4.4 changed its table format for + logscale. Excellent. + ++ the \pgfplots@ifgridlines@onorientedsurf@should@be@drawn#1#2 is WRONG. + It works ONLY for boxed axes. All others need special handling... + ++ table package: + using a non-trivial 'every table' style combined with + \pgfplotstabletypeset[begin table/.add={}{}] + yields a bug: the .add is invoked twice (since the 'every table' stuff is + invoked twice). + ++ in tick label reference: the example with \nicefrac has ymajorgrids, but + doesn't display them! Check! + ++ parametric gnuplot plots do not work correctly (see mail of Gabriel Lera) + -> require user interface method to set 'variable' and 'variable y' for this case. + Default should be 't' and 'u,v' ! + ++ the tick pos stuff works (puh!) + However, there is an inconsistency with the axis lines stuff: + 'axis lines=left,tick pos=right' + will yield almost the same effect as 'axis lines=right'. However, the + 'axislinesnum' still assumes it is at the left. + Thus, there are potentially some inconsistencies... + -> BUT THAT'S LOW PRIORITY + ++ tick align=outside doesn't seem to affect the ticklabel cs although it + probably should (tests in pgfplotstest.axislines.tex). + -> check also display styles for labels! + ++ manual: 'label style' and 'xticklabel style' are not auto-crossrefed + ++ extra ticks do not work with '3d box=complete' + ++ I had just a problem with 'log basis y=2' : the x axis also used basis 2, but minor ticks basis 10. + It was the second plot; the first had also log basis x=2 + -> the problem is the 'log basis ticks' style which changes 'log number + format code' globally for the axis. + ++ reversed axes: + + color bars can't be reversed; the shading disappears + + reversed axes and centered axis lines: + the label placement style is incompatible. + - axis lines=center + reversed axes: the tick labels are placed somewhat + too near the axis... see the test in alignment subsection of testcases + -> perhaps the "normal vector" points into the wrong direction? + -> It is the tick@offset computed in the tick label placement + routines. I have implemented special handling for this case, but I + do not really understand the problem. + FIXME + - tickpos is wrong + ++ coordinate filters for log axis are not as documented: the 'unbounded coords' key won't be processed correctly. + ++ axis line variations: they pose problems for + a) 3d axes + b) reversed axes. + + ++ The Adobe Reader crashes on p 68 of the manual (while Foxit shows and +prints without complaint). 27.11.2009 reported by J. Goebel + ++ check the old code with 'pgfplotsautoanchor' for tick labels. + Is that still up-to-date? NO + Perhaps it should be replaced with something better? YES + ++ recently, I used \pgfplots@command@to@string. But: for arguments like `\table' this yields `\table ' including a space. Check if that poses harm. + ++ the pretty printer appends '{}' to known csnames. ++ the pretty printer appends ')' to |(| ++ the xref to |scatter src| is broken... why? + ++ \thisrow inside of column creation does not respect aliases + ++ the \pgfplotsretval key is uses globally and locally. Fix that. + There is also \pgfplotslocretval which should be eliminated. + Better: use \pgfplotsretval for local ret vals and + \pgfplotsglobretval for global ones. Better still: avoid global return values if possible. + + ++ 3D and special axis lines doesn't work at all. + ++ sanitize 'plot file' by appending '0' coordinates at the end of the current line + ++ the 'z buffer=auto' key in every mesh is stupid. What if I don't want it!? + ++ allocate a \newread for input files to avoid compatibility problems with other packages. ++ scatter/pre mark styles should OVERWRITE the current setting instead of append. Provide additional keys with suffix '*' which provide the "append" feature. + ++ if view leads to ||e_i| == 0, this results in an error somewhere (infty + occurs) + +X change UI of ticklabel cs: provide an option 'ticklabel cs:[<interpreter>]<coord>,<dist>' which specifies how to understand "<coord>". Choices: + - 'display' + - 'rel coord' + - 'abs coord' + is that really useful ? + ++ plot3 table: the scanline detection does not always work (seems to need an empty line as last line) + ++ the \pgfplotsdeclareborderanchorforticklabelaxis does not work if someone changes the shape! The shape changes occur AFTER my command. + -> solution idea: implement some sort of "unknown shape handler"! + ++ 3D: very long labels are not completely correct: they may run into the axis. + ++ the 'check tick show thing doesn't work for non-boxed axes! + ++ BUG IN \jobname with " --->> IS INVALID ++ there is 'samples y' and 'variable y' but 'y domain'! + ++ ich habe gerade das Problem, dass ich fuer einen Plot nur eine + y Achse moechte. Ich habe "axis y line=right" gesetzt. Nur sobald + ich "axis x line=none" einfuege, verschwinden die Tickmarken an + der y Achse... + ++ provide a meaningful error message when mesh plots fail due to unbounded + coords - I don't want to waste time with checks. (could I optimize the + checks??) + ++ I have removed the 'surf' option from \addplot3 {...}; -> check it ! it + should be moved to some default style; maybe cycle list or so? + ++ the auto z buffer may lead to errors if cols and/or rows is empty. + ++ FPU and '<' operator didn't work!? + ++ the 'prepare@#1coord' doesn't check for unbounded coords. Besides, it appears + to be wrong - maybe I should rewrite it. + ++ one my recent changes leads to 'meta data 25.000' is unbounded for whatever + reasons. Furthermore, \addplot3 {x^2}; lead to a bunch or error messages. + ++ forget plot and legends do not work + ++ providing 'ybar stacked' to the axis and 'ybar' to each plot seems to cause + problems (see test case per Mail) + -> that's because the '\addplot' ybar can't distinguish between /tikz and + /pgfplots paths! + + To stay compatible, I need to make sure that \addplot[ybar] actually uses + \addplot[/tikz/ybar]. That's how it is documented. + ++ colorbar impl: + + determine correct height such that it has the same as its parent. + + determine all styles which need to be inherited. + + fix the style-restore routine! It eats too many '#' chars! + + ++ the 'plot table' detection of gnuplot files is buggy - it can fail for example + if there are 2 comment lines and 3 columns (with headers) + ++ the xtick=data feature doesn't check for double occurances. + ++ It appears the (new) placement of tick scale labels is wrong for 2d axes. + ++ the '[xyz]ticklabels' key does NOT work any longer! It fails if some of the + ticks fall outside of limits. + ++ the meta stuff is not sanitized: check for NaN or INF. + ++ z buffer=sort does not respect LOG axes properly! + ++ z buffer=auto should be added. + ++ table package and unbalanced columns appears to be buggy. + -> need use 'nan' + ++ I observed problems with the 'title' placement in 3D plots!? + ++ something is wrong with the log basis stuff. Did I mess something up!? + + fix this! For reasons of compatibility, it might suffice to modify the + clickable lib since the display of the plots is correct (base 10). Any + internal UI special cases might still rely on base e (and it might be more + efficient to rescale just tick labels!) + - document that special handling to reduce confusion! + ++ context incompatibility: \definecolor is defined differently in context, leading to bugs (occurs for 'mapped color') + ++ + \pgfplotsset{every axis/.append style={font=\footnotesize}, + tick label style={/pgf/number format/1000 sep=}, + xticklabel={\pgfkeys{/pgf/fpu}% + \pgfmathparse{round(exp(\tick))}% + \pgfmathprintnumber{\pgfmathresult}}} + + to see the real tick numbers in a semilogxaxis, but when I use the former + fake plot as the first of my plots, it behaves as if I hadn't used these + options. When written in any other position it works as expected. + + More specifically, this only happens when using xtick=data. If the ticks are + specified as a list, the bug doesn't show up. + ++ there is 'ticklabel dist' and 'label shift'. Use the same naming convention! + ++ 'shader=interp' still does not support 'ordering=colwise' + ++ 'view={0}{90}' does not set label styles correctly + ++ BUG: empty axes and one of my newer changes (bblowerleft) conflicts. + ++ the clickable lib output is shifted somehow (at least for log plots). It + appears it does not respect the new alignment stuff properly. + ++ the 3d labels still need a good initial style - and a user interface to set + it. + idea: 'every 3d axis' is a style which can set axis descriptions or tikz keys. + + all descriptions styles need to be set up before they are used. + + changes to these styles may only be done when the axis' dimension (d=2 or + d=3) is clear - and the associated initial styles are installed. Then, + modifications may be applied. + Idea: implement all that stuff when 'every axis' is used. But that has + '/tikz/' has default search path... + ++ I fear plot gnuplot may not reflect the latest changes - at least not for 3D! + + log basis + + plots R^1 -> R^3 (parametric) + + plots R^2 -> R^3 (parametric) + -> may require 'u' and 'v' + + using other variable names (see 'set dummy') + + ydomain is not set + ++ the \x, \y, \z etc. macros in the table expression plotter should be + eliminated! They pose name conflicts. + ++ the '/tikz/variable' key can't be provided as argument to an axis (missing + family) + ++ the tick scale labels need to be placed with 'ticklabel cs'. That's difficult, + but necessary. + + 2D + needs to be improved! + + 3D + ++ the color bar is an "axis description" -- but it can't be placed like other + axis descriptions! + + ++ I need a solution to rotate labels correctly and make alignment in a good way + -> probably the "sloped" method of pgf? + + ++ I fear the 'plot gnuplot[<opts>]' thing does not properly process <opts>. + ++ what happens if 'point meta [min,max]' is provided inside of \addplot? + ++ it appears the recent changes update the bounding box - disabling overlay for + tick labels + ++ the 'legend image code' is again buggy! Try ybar! This here is the reason: one + can't set draw/fill mode from within a scope! + \begin{tikzpicture} + \scope[fill=blue,draw=red] + \path (0,0) circle (10pt); + \endscope + \end{tikzpicture} + + ++ the 'x={(x1,x2)}' option(s) are buggy: the complete vector length needs to be + scaled by the datascaling routine, not the single components. + ++ ticklabel interval stuff doesn't work properly + ++ potential problem with stacked y bar and semilogyaxis, see bug report per Mail + ++ stacked plots do not sanitize the input arguments: it may happen that too few + (or too much) coordinates are given. + ++ axis y line=right, FAILS to produce correctly placed tick + labels -> only in manual!? + ++ ymin=0.9 is ok while ymin=.9 is not ok -- update number parser. + ++ legends are currently broken! + ++ the tick labels on axis boundaries are often missing. I suppose this is due to + rounding inaccuracies or '<' instead of '<='. check that! + ++ new alignment: origin anchors for unfinished axis is not updated. + +X perhaps the ASCIIHexEncode would be a useful addition for the pdftex driver of + surfshading as well...? + no, it isn't. pdf2ps still generates huge sampled postscript files. + ++ check for the @non@legend@options - I suppose they are deprecated now and + waste computation time. + ++ the new key processing which skips every /tikz option in \addplot might not be + correct - there are several plot related exceptions like /tikz/id etc which + SHOULD be processed. Make sure I have all of them. + Besides: what happens if someone uses /tikz/draw explicitly? I am not sure if + that hurts... ++ the recent search path construction WILL also set tikz options during + \addplot. + There won't be any paths during \addplot - but I am not sure if there can be + any scoping problems related to the graphics state. + -> that stuff produces problems with /tikz/ybar vs. /pgfplots/ybar! + + + ++ the view argument should be similar to gnuplot /matlab. I fear I have + exchanged some of the directions. + In matlab, the argument is '{yaw}{pitch}' instead of '{pitch}{yaw}' + Furthermore, the rotation axes are different. view={0}{0} in matlab shows + the x axis horizontally and the z axis vertically - the view direction is + (0,1,0) -- for me, this would be (0,0,1). + ++ pdf2ps still fails for interp shader - it has a limitcheck exception. Perhaps + the number of bits is too large for ps? + -> a very small stupid test with 8 bits per coordinate and 8 bits per cdata + worked + ++ clickable plot lib produces visual artefacts in acroread + -> the 'hidden' flag appears to be incompatible with figure environments!? + - fixed in recent hyperref drivers of pdftex; was actually a bug of hyperref + ++ the 'current axis' node is not defined until the first axis descriptions are + drawn. That should be fixed by defining the low-weight shape before processing + the stored path commands. + ++ The following fails: + \addplot+[ + black] plot coordinates { (0,0) (1,1) }; + ++ the \ref command should be \protect'ed in LaTeX captions + ++ the ticklable dist feature NEEDS anchors. + + ++ provide example for colormap changes - that should also verify the correctness + of the method + ++ provide sanity checking in scatter plots - for example missing explicit + scatter src. + ++ improve docs for scatter plots: + + 'only marks' is also a scatter plot! + ++ something with the table package appears to be buggy!? + ++ the plot table[] search path is not good - it should include /pgfplots + ++ introduce backwards compatibility with old pgfmathfloat.code.tex file + [ not interesting for pgfplots 1.2, only for pgfplots 1.1 !] + ++ there is a bug related with empty axes - I suppose in conjunction with the + tickmin/max feature (it won't be reset properly) + + +X there is a space too much in some behavior messages (occured in test + processing) + +X introduce backwards compatibility with old pgfmathfloat.code.tex file + ++ the auto-generated tick labels for non-unit-distance log axes could be better. + ++ verify that the domain key always accepts the extended data range + ++ I observed problems with opacity set for just one plot which was used for + every plot in the axes!? + + ++ the stacked plots impl is not yet in logical coords - that means it + won't work with non-standard unit vectors! + ++ The floating point math routines should be put into a separate library. + Provide compatibility support for that in pgfplots! + ++ empty plots cause bugs. ++ empty plots and the named nodes may not work correctly -> check that + ++ newlines in plot coordinates cause an error. + + provide sanity checking and correct error messages! + ++ 'domain' can't be used to increase the data range, even when combined with fp. ++ huge 'domain' arguments for 'plot function' lead to an 'dimension too large' error + although everything works fine + ++ the float math methods should be affected by the fixedpoint library, but they + are (because the underlying pgf math routines are exchanged). + +X scaled ticks is not properly implemented for log axes + + it is not available for log axes, so that's ok + ++ pgfplotstable and \rowcolor and 'sci sep align' in conjunction produces + overwritten digits! The color seems to be on top of the numbers left of the + sci separator. + -> This is caused by the left/right overhang of the colortbl package and my + implementation of 'sci sep align' as an extra column. That's bad. + -> Idea: + - manually overwrite \rowcolor/\columncolor/\cellcolor in a portable way such + that overhangs are made properly. + Maybe there is a macro in colortbl? + [fixed for \rowcolor] + + ++ stacked plots + error bars don't work correctly together: I need to shift the + error bars + ++ error bars should be drawn on top of the plot to avoid conflicts with filling. + ++ [xy]ticklabel pos values 'top' and 'bottom' are somewhat inconsistent with + the actual placement + ++ the auto-disable-feature for logarithmic minor ticks can be overruled (of + minor grid lines) which should not be possible + -> provide a good policy how to deal with user inputs: + 1. draw minor tick/grids if requested + 2. provide error message + ++ scatter is disabled if no default mark has been set. + ++ filter warnings are broken because they don't output the input coordinates + ++ tick align=center is broken since last revision. Possibly tick align=outside + as well. + ++ clickable lib is broken somehow + ++ check for clickable lib if multiple axes are in the same tikzpicture + -> doesn't work. Why!? + - I can't reproduce that bug. Maybe it is fixed in the meantime? + ++ the case + ymin=629.65, + ymax=629.70, + FAILS with math errors because the affine data transformation is deactivated + for the automatic tick computation! Providing tick labels manually works. + -> FIX THAT! Ticks should be computed without this restriction (if necessary, + in float arithmetics)! + ++ it is not possible to provide '[xy]mode' in styles. + -> ok, provided error message. + ++ check whether there are any plots before processing something like + 'xtick=data' or so + ++ the clipping of tick/grid lines is currently disabled due to the change to + logical coordinates and needs attention. + ++ 3D case : which hyperplane gets tick LABELS? + The current implementation based on '[xzy]ticklabel pos' is not sufficient + ++ 3D case: something fails with disabledatascaling + ++ '\coordinate (<aname>) at (axis cs:0,0);' does NOT work; + '\node[name=<aname>] at ... ' DOES work. + -> I can't hook into the 'at' syntax; I can only override the 'name' + key. + ++ check whether the \label/\ref construction requires \protect\tikz and + \protect\path etc. if it is placed inside of \caption... + -> no; it has catcode 12 + ++ check whether named nodes are still ok. Since the 'fill opacity' bugfix, these + may be broken... + maybe the scoping needs to be improved + -> there is still need for scopes in case 'clip markers'! + ++ error messages if the PGF version is wrong should be added + -> check for \pgfkeys + -> I should also check whether the float routines are available! + Maybe they will migrate to a tikz library someday. + + ++ \addplot [fill opacity=...] is not scoped properly! ++ I suppose the same problem holds true for dotted line styles. ++ setting mark options to dashed also changes the legend's appearance + ++ renormalization bug in + log(9.999998e-01) = 4.70201 != 0 + +X Bug in table input: if colnames contain (some?) UTF8 characters, \csname <colname>\endcsname FAILS. + That means table column names can't use UTF8 characters. + Possible solution: for each character in <colname>, check whether it is active. If yes, change its meaning. + I am not sure if that's acceptable... + +X error recovery: it is sometimes almost impossible to find errors in + key-value-settings because \end{axis} or \pgfplotstabletypesetfile does not + is NOT the correct context. + -> possibly with \errorcontextlines=10? + ++ the error message for gnuplot invocation is wrong; gnuplot should be called on + the '.gnuplot' file instead of the '.table' file + ++ there are still plain TeX loops in the legend code!? + ++ javascript stuff is incompatible with a lot of active characters, + for example the german package: + + bug in insdljs: workaround introduced. + + bug in my code fixed + ++ 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? + ++ 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) + +X 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 + ++ that first/last coord detection doesn't work for 3D + + +------------------------------------------------ +FEATURES +------------------------------------------------ ++ allow to advance cycle list(s) manually + +X automatically choose a predefined scaling style depending on width/height (?) + ++ implement 'point meta=symbolic command:<cmd>' and 'point meta=command:<cmd>' + the command should assign '\pgfplotsretval' + ++ It would be a valueable addition if the external lib would be available for the next stable release. + ++ the scatter/classes feature needs a legend. + ++ provide a '3d box' boolean which draws the full box. + -> should use the correct drawing sequence (foreground/backgraound) + -> should use the decoration things + ++ there is no possibility to provide a background color for the axis only + (should be a fill/draw style for the clip area). + ++ -> perhaps 'plot box aspect ratio=<x> <y> <z>' ? + And I still have the stretch-to-fill thing as in matlab. + ++ finish the 'unbounded coords=jump' method. + ++ I have the following request. Is it possible to also provide a domain +key for file and table plots. I have a file containing data points +where only the points in a certain range shall be plotted. I first +thought that filters might be a solution, but it seems that they apply +to the whole axis, not only to one specific plot. + ++ the UI to provide point meta is complicated. + ++ provide a possibility to get the maximum tick width (for use in ticklabel cs) + ++ provide a possibility to draw gaps. Maybe using nan or inf coordinates? + ++ provide a 'y variable' key? + ++ provide other log bases + ++ implement colorbars. I have a running prototype; it just needs some tuning. + +X 3D: assume default plot type when used with \addplot3 without plot style + (perhaps a special cycle list) + ++ allow to anchor an axis at any labeled node inside of it (like for a matrix) + ++ legendfromname etc: allow usage via \ref{}. + + ++When working with markers on the plots, the nomenclature is inconsistent. There +is 'mark size', 'mark=*' and 'only marks', but 'no markers'. + ++I created several cycle lists to be consistent in different types of plots. For +example I have a cycle list with markers and no lines for raw data points and a +cycle list with only lines in corresponding color. Now if I want to have raw +data points and fits in one axis, I cannot use these. Ok, I could make a +cyclelist where raw data and fit styles take turns, but this would break down +when I have more than one fit for a set of raw data. This is probably something +that has to go into pgf, but would it be possible to add a easy way ++ to switch to different cycle list between two addplots, ++ and to navigate in it (go to a specific position in the cycle list, go n steps back/forth)? + ++When I first tried to combine plots with only symbols and plots with only a +line in one plot, I had difficulties to figure out how to do it. Having worked +with pgf before, I intuitively tried to activate no marks/only marks for the +whole axis and then override it explicitly for some plots, by adding [only +marks/no marks] to addplot. + ++ I would find it convenient, if there was a key to indicate legend placement, +for example 'legend position=south west' as shorthand for 'legend +style={at={(0.05,0.05)},anchor=south west}' or something similar. + + ++ provide a simpler method to replace the '\cdot' in tick scale labels with a + different sign, for example '\times'. + ++ provide a feature for bar plots which add the bar value as node on top of the + bar. + ++ use the new \pgfplotspointoutsideofticklabelaxis things to place axis labels. + -> this needs a further variant which allows 'relative' axis coordinates + (0=lower limits, 1=upper limit and everything between) + ++ I need a clean interface to distinguish between R^1 -> R^3 and R^2 -> R^3 visualization. + ++ allow changes to `legend image code' in plot styles. Maybe the 'legend image + code' or some other preparation commands can be remembered explicitly such + that they are set before 'legend image code' is already running? + ++ legends need a better key path to process pgfplots plot handlers. ++ I need legends for mesh/surface plots. + ++ provide the axis bounding box as coordinate system (for description placement). + + ++ write public interface \pgfplotsdepthofxyz#1#2#3 ++ consider renaming that one to pgfmath... or pgfplotsmath... ? + ++ reverse legend + -> CF: implementation of Tom Cashman per mail + ++ what about in-text-input of tables like + \pgfplotstableread\data{<data>....<data>}{\macro} + \pgfplotstableread\data{<data>....<data>} to listener \listener + ++ I have just added '* expr' for plot table. + ideas todo: + + implement it for plot table structure as well, + X document plot file such that users know how to add expressions, or, even + better, automatically switch to plot table if someone uses x expr.. + +X optimize the z buffer=sort impl of mesh mode: use preallocation (doesn't yield + much, but at least a bit) + ++ it could be interesting to provide customizations to the cube marker. For + example different lengths for each side... could be used as basis for a 3D bar + plot implementation. + ++ there are applications in which BOTH untransformed meta AND transformed meta + are required. In this case, the untransformed meta should be provided in a + more convenient way - perhaps as fixed point number? + +X in scatter point public interface: it would be interesting to know if we are + currently processing the first/last coordinate. is that information available? + ++ write default styles for "string coordinates" which maps a set of +user defined strings somehow into a numeric range (using a simple +dictionary) + + ++ pdf supports REAL lattice shadings! See pdf reference 1.7, section 4.6.3. + + ++ provide a public basic level API to pgfplotstable: + + access, iterate and read table elements + + manipulate elements + ++ binary input subroutines: + use a simply scaling for dimen registers. The scaling should be such it maps + [-16384,16384] -> <range for N bytes> + properly, i.e. it is just an integer division. The resulting integer can be + encoded using the available linear map functionality. + ++ Notes for how to finish the 3D axes visualisation: + ++ the FPU uninstall command can be assembled ONCE (globally). No need to do that + multiple times. + ++ What about something like '/pgfplots/table/x expr={<math expression>}' ? + -> I could still use the lazy eval framework of pgfplotstable, i.e. + \thisrow{} commands, \pgfplotstablerow, \pgfplotstablecol etc. + The \prevrow and \nextrow features won't be possible (?) + ++ improve support for negative (reversed) axes + + + ++ improve plot expression + + accuracy + + UI + ++ what about an optimized version of plot expression which does not need the + brace hack (\x,{sin(\x r)}) ? + ++ plot expression for log plots would be more valueable, if it could sample + points exponentially, i.e. linear between log(xmin) ... log(xmax): + x_i = exp( log(xmin) + i * ( log(xmax)-log(xmin) )/(N-1) ) + ++ define a 'cycle list' style which simply inserts different colors into the + predefined style (thus, markers are fixed, colors vary). One could also think + about a complementary style. + + ++ create public key alias for '/pgfplots/domain' -> '/tikz/domain' + +X the coordinate preparation routines should assign global registers. This would + deal properly with grouped '\addplot' commands and it allows several + optimizations in the coordinate processing (elimination of list allocations). + ++ document line styles with arrows + + ++ provide 'only each nth coordinate' or so as style on top of 'x filter'. + ++ think about quiver plots + + ++ implement simply style 'scatter classes'. + + sanity checking feature: try if 'pgfmathfloattofixed' results in a known + class! -> but catch exceptions if the value is no number! + ++ allow symbolic meta data + ++ provide input options for 'meta' data + + plot file + + plot table + + plot coordinates + - document that stuff + +X I could extend the clickable library such that a click into a TABLE + opens a marker into one (or more) designated plots. + + ++ optimize the new code by re-defining \pgfqpointxy for the case of scaled + standard unit vectors. + +X perhaps I can use pdf line annotations to improve clickable lib? + -> no: there are right restrictions when using latex. + + ++ I could optimize the number parser with '\csname ...#1\endcsname' + constructions where '#1' is the currently identified character. + If #1 in {0-9,e,E,+-} etc., I could save a lot of macro assignments and + \ifx character comparisons. + ++ Speaking about optimiziation: I always wanted to test \pgfmathln inside of the + log code (combined with float support). + ++ the 1000sep character should be placed for numbers >= 10000, not before. + ++ improve scaled ticks: allow manual control over the automatic tick scaling. + ++ it would be interesting to get an high-level coordinate mapping + ++ a scatter plot feature in which each mark gets its own set of options would be nice. + + ++ 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... + :-( + +X maybe it is possible to eliminate a lot of key macros to save string space? + Those family macros can be optimized (sure ?). + ++ axis equal option + ++ 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. + ++ allow extended <col name> 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 + +X 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 + + ++ 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. + ++ 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 grid 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. + +X 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. + + +X 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 + +X 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 + |