------------------------------------------------ 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 {}{[1cm] }? -> 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:[],' which specifies how to understand "". 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[]' thing does not properly process . + 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 () at (axis cs:0,0);' does NOT work; '\node[name=] 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 \endcsname FAILS. That means table column names can't use UTF8 characters. Possible solution: for each character in , 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:' and 'point meta=command:' 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= ' ? 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{....}{\macro} \pgfplotstableread\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] -> 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={}' ? -> 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=] {}; -> 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 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