summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/pgfplots/todo.txt
blob: 23880977b8fda8d686fced4c69aa4381f7d6e8e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
-------------------------------------------------------------
BUGS
-------------------------------------------------------------

- the interrupt bounding box feature should still update the data bounding box.
  Otherwise, transformations may fail.

- to check: it *could* be possible that errorbars + stacked plots are
  incompatible.

+ the 'alias' and 'create on use' features may lead to errors. Check it!

+ variables which are used both globally and locally seem to fill TeX's save
  stack to due retained restores

+ I have introduced incompatiblities with the 'log identify minor ticks' option.
  Check how to solve that. Side conditions:
  	- compatibility with the modified log tick labels for small range
	- compatibility with extra ticks
	- compatibility with the manual

+ check whether 'clip limits' works properly if only one data point falls into
  the final region

+ add '-halt-on-error' to externalize command

+ handle rare case that auto limit computation leads to min > max (only possible
  for clip limits=false)

+ evaluate 'every axis plot' inside of \addplot command, even if that means a
  small inefficiency because it is evaluated in the \draw command as well.
  -> allows to get id, prefix, samples and other behaviorual options.
  -> attention: then, every axis plot would contain BOTH display and behavioral
  options; take care with key paths

+ \addplot plot[#1] does not use /pgfplots as search path
+ 'every axis plot' does not use /pgfplots as search path


+ implement partial limit specification, for example 'xmin=5' -> only compute
  'xmax'

+ check gnuplot on windows - there appear to be semicolon problems!?

+ again, the disabledatascaletrafo key does not seem to work correctly. Check it!

X active semicolons may be a problem

+ [ CF: for tikzlibraryexternal : use double quotes instead of single quotes in
  system calls -> win32 doesn't support single quotes ]

+ problem with context: even simple images do not work correctly. Why does the example work!?

+ table package: 'array' required for some examples -> document

+ handle 'nan' and +-inf in plots

- 'every axis plot post' is not reflected in legend (at least not properly)

+ plot function: incompatibility with 'german' package and "  catcodes

+ improve error recovery

+ grid lines and tick lines can obscure the axis lines, especially when used
  with different colors.
  -> draw axis lines on top of tick/grid lines!?
  Or more generally: change drawing sequence to
  	1. grid lines
	2. tick lines
	3. axis lines
	4. tick labels?

- extra ticks can be disabled by the tick special cases for axis lines (when two
  axis lines cross each other)

+ eliminate any public reference to the '\\'-lists. They are inconsistent with PGF.

+ use '{}' for sci  'e' style - looks better

+ the tick scale labels are inadequate.
   1. Formatting
   2. maybe they should be disabled at all!?

+ specifying axis limits for X should also limit those for Y (some sort of
  clipping)

- the text height of every axis x tick should be adjusted to allow tick scale
  labels on the same vertical alignment
  -> bug in pgf: text height does not properly respect to the current font!?

+ the new \pgfkeys framework:
  	+ I have re-implemented all options with \pgfkeys. 
	  this allows styles and mixing of TikZ/pgfplots options.
	+ BUG: if someone provides FULL keynames, the method WILL FAIL.
	+ the style= option fails.
	+ the 'x=' and 'y=' options fail.
	+ every option which exists in both, pgf and tikz, will fail!
	+ 'legend style' fails
	+ the 'legend style, grid style, x label style etc. options' test fails

+ axis limits of zero width are not fixed causing division by zero

+ ytick=\empty is broken again :-(

+ if a logplot has very small axis ranges, only ONE tick label will be placed.
  Thats not enough.
  In such a case, tick labels should be placed at MINOR TICKS [2-9]*10^i.
  BTW:
    if someone places tick marks at [1-9]*10^i, the minor ticks should NOT be
	disabled. 
	Instead, tick positions should be RECOGNISED AS MINOR TICKS (which is not
	that simple).

+ die legend[font=] variable ist doch dasselbe wie in dem tikzstyle zu legenden,
  oder? warum funktioniert es dann anders?

+ implementiere enlargelimits fuer log-achsen

+ markers werden rausgeclipped, wenn die achsen TIGHT sind.

+ man kann keine leeren listen an tick labels uebergeben!

+ width/height produziert NICHT die gewuenschte breite.
  Man sollte ne zusatzoption haben, die die labels grundsaetzlich NICHT
  beruecksichtigt.

X Fix the scaling estimations.
  Problem: I don't know sizes of labels, legends, titles and tick labels.
  Idea: 
  	-Create a temporary picture
		\hbox{%
			\begin{tikzpicture}[xshift=...,yshift=...] % skaliere auf (0,0)--(1,1)
			\draw (0,0) rectangle (1,1)
			plaziere labels + legende + vllt. ein tick auf jede achse (?)
			\end{tikzpicture}
		}%
	- measure and remember its size
	- throw it away
	-> 9.2.2008:
	 ATTEMPT FAILED.
	 Reasons:
	 	1. it is not possible to place a tikzpicture into a tikzpicture.
		   And it can't be because Tikz updates bounding box parameters GLOBALLY.
		2. I could use a combination of 
			- scope,
			- the 'current bounding box' node,
			- \pgfpointanchor{current bounding box}{ anchor name },
			- drawing commands for labels,legend etc.
		   Effect: bounding box is determined correctly. BUT:
		   	- bounding box of real picture may be affected,
			- every output is drawn because nodes can't be 'thrown away'.
			  At least I do not know how.


+ enlargelimits muss RELATIV nicht ABSOLUT gemacht werden.

+ es gibt einen fehler in der achsen skalierung, wenn 
  man sehr grosse limits hat (normale achsen)

+ default ticks muessen besser an achsenlimits angepasst werden
   -> bei sehr grossen oder sehr kleinen limits schlaegt die derzeitige
   einschraenkung der step sizes fehl

+ addplot plot coordinates { (235 , 43252) }
  								 ^
  funzt nicht wegen dem leerzeichen vor dem komma

X verschiebung des ylabels ist komisch, wegen der rotate option


-------------------------------------------------------------
FEATURES
-------------------------------------------------------------

- it would be interesting to get an high-level coordinate mapping
  	X : K -> \R
  X(k) \in \R is the x-coordinate.
  Idea: K can be any type of input, for example
  	- time,
	- date,
	- strings,
	- ...
  and K maps this transparently to numbers. Then: *all* input is given in K, and
  all output (tick labels) are given in K as well (requires X^{-1}).
  -> that's not difficult.


+ styles are named very unintuitively. I should add something more convenient
  (for example like the 'legend style={}' command). Idea: use the *same* name
  as the options which are affected,
  'xlabel style'  'title style' etc. My current naming scheme used the name of
  the 'every style' which suffer from backwards compatibility with xkeyval...
  :-(   

- maybe it is possible to eliminate a lot of key macros to save string space?
  Those family macros can be optimized (sure ?).

- provide access to axis limits and data bounding box.

- It would be useful to get access to axis coordinates, for example in 'circle (XXX)'

- axis equal option

- consider 'plot image[xmin=,xmax=,ymin=,ymax=] {<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

- check whether the new floating point routines can be used to 
  REALLY setup a linear map DATA RANGE -> DISPLAY RANGE
  Technical thing: map the CLIPPED data range or the TOTAL data range? 
  What advantages/disadvantes appear?

- [Tikz] document how to use internal registers can be used in libraries.

+ [Tikz] add an 'every plot mark' option and adjust 'mark options' accordingly

+ document the 'external' library of tikz (CVS only).

+ group 'All supported styles' section by content


+ allow arrow heads or other axis line styles
	+ styles for axis lines are missing
	+ for outer axis lines: introduce option 'separate axis line paths'
	   if one wants to use arrow heads

+ set default styles for non-boxed axis labels
	+ label positions for centered axis lines
	+ tick scale labels
	+ tick align versus label positions
	+ think about axis label placement. Possibilities:
	  	- on the same side as tick labels.
		  -> should be move away in normal direction
		  -> should avoid problems with tick scale labels
		- opposite of tick labels
- perhaps math style {grid=major, axis x line=middle, axis y line=center, tick
  align=outside}


+ the table package could use some sort of multicolumn feature which
  allows something like 'columns={A,B,A,B,A,B}' and distributes entries of input
  columns A and B equally to output columns.

+ TDS directory structure is not completely correct. Should be everything under
  directory 'pgfplots':
	$package = "pgfplots";
	&SYSTEM ("$MV README ext_scripts test doc/generic/$package/");
	&SYSTEM ("$MV generic tex/generic/$package/");
	&SYSTEM ("$MV context latex plain tex/");
  and context files should be in
  	tex/context/third/pgfplots/...
	doc/context/third/pgfplots/...
  (reference: mail conversation with Karl Berry)


+ automatic disabling of enlargelimits when axis lines are not drawn as a box

+ copy my personal' homepages short images to pgfplots website

- interrupt single plots at discontinuities (for example tan(x))
  -> don't draw from +infty to -infty

- optimize plot expression

+ optimize tick generation code for speed

+ alias 'axis x line=middle' and 'axis x line=center'

+ an option which contains legend ENTRIES?

+ the non-boxed axis lines are placed at 'ZERO'. Maybe this zero level should
  get an anchor!? -> allows to place axis labels above it

- default style for axis lines to: {thin, black!25} ?


X implement an axis as path-command

+ implement proper anchors 

+ provide simple options for useful bounding box truncations


+ Maybe I could perform a restore of the current bounding box at the END of an
  axis. Restore means: restore to the setting BEFORE the axis.

+ I could create a node which can be referenced and which has the axis' size 
  [ That touches another open problem, see below]

+ I could use the new 'local bounding box' option of PGF to restrict the
  bounding box to the axis' size

+ I also need some sort of number style for log-tick-labels.

+ move math mode shifts into \prettyprintnumber implementation.

+ allow the '-plot' commands.
  It would be a cool feature if '(FIRST_X,0)' could be inserted as move-to
  operation before every plot.
  -> one could make funny features with 'fill' in plot styles.

- make the legend code more general: allow
   \addformattedlegendentry{ \node{hallo} \nextcell \node{foo} \nextcell #1}
   where #1 is the auto-generated small plot-spec image. One could also provide
   '#2' as just the current plot spec OPTIONS.



+ document 'legend plot pos' option

+ there are some clipping paths in the tick-placement loop which can be
  replacement with simple \ifdim's. 
  I guess clipping is not the cheapest operation.


- remember unfiltered (non-logarithmized) input ticks with \listnew and provide
  them like '\tick' during ticklabel typesetting
 

+ improve tick placement (more) systematically

+ provide auto tick labels at 5*i if appropriate

+ implement the legend as tikz-matrix
  -> width computation works correctly (there is a bug with font scaling)

+ provide tick labels as a list like
  	axis[tick labels={A,B,1,4,5,$\frac 12$}]
	-> convert to \listnew, use listpopfront to access elements


+ provide options for log plot tick formatting:
  	10^0.703 vs fixed point format

+ I could provide a global coordinate transformation 

+ I could try to use the plot-stream framework of PGF directly instead of using
  the 'plot coordinates' command of tikz. 
  Advantage: would be faster. And the additional features can't be used anyway
  because of my own number parsing routines...

+ rename manual.pdf to pgfplots.pdf -> allows texdoc pgfplots


+ alignment: vertikal kann ich jetzt mit baseline. Kann ich horizontales
  alignment an (0,0) hinbekommen?

+ axis hide option ? macht das sinn?

+ legende anders formatierbar?
  	- ausserhalb des (und isoliert von dem) plots?
	+ horizontal?

+ grid lines
  	+ minor
	+ major
  -> einfach als verlaengerung der kleinen tick lines
 
- es gibt scheinbar in PDF viewern die moeglichkeit, fuer den Druck ein anderes
  dokument/dokumentteile zu verwenden als fuers Bildschirmbetrachten
  (draft-package bspw?).
  Kann man das nutzen, um sowohl farbige als auch S/W-plots zu generieren?
  -> pruefe draftcopy paket


+ koennte man den kram auch aus (grossen) tabellen rauslesen? Also sowas wie
  "plot X versus Y aus file Z"?
-> DEBUG!
  Ideen:
  	+ abstrakte datenstruktur als liste von spalten, eine spalte ist ne liste
	  von nummern
	+ einlesen: 
	  	+ zeilenweise, haengt an die jeweiligen spalten mit \listpushback
		  coordinaten dran
		+ read first line as header (optionally my $flags line for column
		  formatting advice)
		+ read just strings, no parsing
		- optimal: '\t' as separator. How can I teach TeX to use '\t' as
		  separator!?
	- would allow
	+  	\addplot plot table[x=X,y=Z] {\table}
	  and
	-  	\typesettable[columns=...,format=sci,...,formatting options=...] {\table}
	+ implementation: simple run through column lists
	-> CONSISTENT data representation, powerful display options



+ man sollte \addplot mit '+[OPTIONEN]' starten koennen.

+ ich sollte das enlargelimits deaktivierbar machen! vllt. auch ne option 'tight'

+ automatisches tick-platzieren koennte verbessert werden
  	-> insbesondere fuer normale plots

+ fehlerbars waeren nett


+ baseline option, die die linke unter ecke als '(0,0)' koordinate annimmt.
  Wuerde generell sinn machen, oder?

+ ich haette sehr gerne ein Skript, dass zu jeder figure ein eps und/oder pdf
  macht, dass dann bitte schoen ordentlich includiert wird.
  -> see tikzexternal june 2008


+ passe bounding box und x/y-skalierung "sinnvoll" an.
  +	mache ne option "width=" die die GESAMTbreite angibt.
  + mache "height" option
  + belege width und height defaultmaessig sinnvoll
  + ueberlege ein sinnvolles gesamt-skalierungs-konzept.
	Das, was ich jetzt gebaut habe, mit 'x=SCALE' und/oder 'y=SCALE'
	ist nicht ausgereift und eher verwirrend. sowas macht man wohl besser mit
	pgf-skalierungen!
	+ 	Die 'x=' und 'y=' optionen sollten direkt in setxvec reingeschrieben werden,
		ohne schwachfug mit skalierung!
	+ 	wenn ich 'width=BLA' angebe, wird automatisch 'y=1cm' angenommen. Das
		ist unintuitiv; man erwartet eher, dass defaultheight im aspect ratio
		mitskaliert wird.
	+	Nur mit der 'x=' bzw. 'y=' option sollte es NACH AUSSEN moeglich sein,
		direkt einfluss auf die koordinaten zu nehmen.

+ entscheide automatisch, ob der abstand zwischen ticks an die skalierung
  angepasst werden sollte.

+ [xy]min = auto
  -> berechne die werte numerisch
  Ideen:
  + verzoegere das malen der Achse bis \end{axis}
  + in jedem \addplot:
    ich koennte irgendwie pruefen, ob ich 'plot coordinates' habe.
	Sobald ich diesen modus erkannt hab, kann ich koordinate fuer koordinate
	parsen und jeweils min/max bilden.
  + ich muesste dann noch den befehl in einem makro konserieren, sodass er
	 spaeter, nach dem verzoegerten achsen malen kommt.

  OFFEN: was passiert, wenn NICHT plot coordinates benutzt wird? Vllt. die
  'domain' variable abfragen?
  -> jedenfalls koennte ich mir da durchaus was ueberlegen!

+ [xy]tick = auto
  in abhaengigkeit von [xy]mode: zeige ticks von floor(xmin)...ceil(xmax)

+ mache styles:
  + every plot
  + every axis (?)

+ gebe eine liste von verfuegbaren linestyles an, durch die mit jedem
  plot-befehl durchgecykled werden kann

+ option, minor ticks ein/auszuschalten

+ option, die X/Y-Achsen anders zu formatieren. Moeglichkeiten:
  + Kasten drumrum
  + je eine Linie mit Pfeil am Ende
  + Achse nach rechts oder so

+ aendere die das \addplot makro derart, dass beliebige plot-moeglichkeiten
  folgen koennen
  \addplot[OPTIONS] plot coordinates {...};
  -> das \addplot ersetzt gewissermaßen das \draw