This file contains old feature requests and wishes for labplot1.x.
The following items will be adopted to the new code and implemented if they still make sense.
For items where it is clear that they need to be implemented in the near feature, consider creating a feature 
request ticket at sourceforge.

#####################
Planned Features:
	* Categorical x-axis (also y-axis ?)	-> see mails
	* parametric plot 
		* (XY(t)). ( using scripting ? )
		* from function  (y(t) vs x(t))
	* multiple regions
		* shown/ not shown in print
		* with background color
	* mask matrix data :
			* mask single points
			* check plotting from spreadsheet
			* 2d surface plot
			* mask data with mouse (maskPlot)
			* check mask in graphlist
	* One thing i just missed is a search field for headers from a spreadsheet as
		data source when adding a new graph.
		I created a new empty graph/ 2D plot and started adding data to plot. Because
		there are so many columns, it would help a lot if there would be some search
		field to filter the columns with data to plot.
		-> filter for spreadsheet column names in AddGraphDialog.cc
	* limit drawing of symbols in legend to legend box
	* data mode
		* jump in data point steps (configure steps)
			Worksheet::keyPressEvent()
		* select plot for data mode

GUI/Application:
****************
	* use/save predefined functions (in function dialog)
		* load from Origin projects
	* use QLabel::setBuddy() for accels
	* Spreadsheet
		* save last used formula for each column.
		U Am besten den horizontalen Scrollbereich der Scrollleiste erhhen, so
			dass man immer noch etwa 1,5 Spaltenbreiten in den grau hinterlegten
			Bereich scrollen kann, auch wenn das Fenster schmaler ist, als die
			aktuell vorhandenen Spalten. Oder rechts von den Spalten ein graues Feld in die
			Titelzeile plotten, das so aussieht, wie die Titelleiste, und auf das man
			dann doppelclicken kann. (und das dann erscrollt werden kann.)
		* Selection like Kaleidagraph (Pascal)
		* format in spreadsheet	(show as ..., convert isodate->double, double->isodate, ....)
		U mark column if right clicked on header
			-> too complicated
	* get the index of the double clicked object (for object dialog list index)
	* Print with correct scales (mm/in)
	* animations
I/O:
****
	* reading multiple files from data dialog
		-> also "same x column"
	F support "indexed" matrix format
	* transparent background when exporting to SVG ?
		* svg export option "transparent background" ?
	* IMPORT/EXPORT
		* hdf5 IMPORT (see /sw/hdf5-1.6.1/doc/html/)
			* import
				* datatype	uchar, time
			* export
				* data type	time
			-> examples : sp_Diagrams_20070626_093808.hdf,DAMARIS_data_pool_small.h5
			* read other data types (string in compound, time, array)
		* read date format "2000/12/24" ("Temperatur.dat")
		* ignore columns
		* multiple column files (NXY)	-> XYYYYY... / YYYYYYYY, X-index
		* progress when exporting data
		* only export selected region

drawing/ data manipulation :
*******************************
	* any formula as baseline
		-> evaluate expression in baseline line edit
	* Symbols
		* more symbols : N types (...)
		* more fills : 16 types (center, corner,...)
		* character as symbols
		* (x/y/x,y) values as symbol
	* move marker with mouse
	* image profiling (vertical/horizontal profiles)
	* Spreadsheet
		* a function that generate a sequence of number in a specific column 
		(if you know excel: you can write 1 2 3 in a column and then drag & drop to extend the sequence).
		* values dialog : show number of parameter of selectable functions : fun1(,) fun2(,,)
	* update open dialogs
		* update object dialog listviews
	* Plots :
		* set drawing object relative to graph (fixed to axes)
		* sqrt/x scales
			* data mode Plot.cc
			* maglens/mask/pan zoom (Worksheet.cc)
			* X/YCoordinate
			* partRanges
		* period or comma as decimal point (configure LabPlot)
		* zoom-plot (extra plot as zoom of another plot)
		* new plot type (Taylor diagrams) : Taylor_2001_JGR.pdf
			If you want to improve a new graph type, for time series analysis of
			the results of a model the best are the Taylor diagrams.
		* annotated values :
			* use own format and rounding (see axes settings)
			* rotation
			* size, color, font
		* wizard for plots (generic plot dialog : type/x-column/y-columns ?)
			* Probably you have added what I meant in Labplot 1.5.0., but it is something 
			like to have an option in the Plot menu: New graph. When you choose it some 
			questions should be answered: type of graph? (XY, XYZ, ...); worksheet where 
			the graph will be added?(existing ones or new); plot where the graph will be 
			added?(existing ones ore new); spreadsheet to contain XY data? (if XY graph); 
			column for X data?; column for Y data?
			Of course it is interesting to have some other fast way to create a graph, but 
			I find this way really versatile and it would include all the possibilies 
			commented above.
		* find the active sheet
		* improve bar charts (stacked, horizontal, ... )	-> see notes
			* each box another color	-> Style::autocolor (good also for Symbols)
			* grouped data	: a1b1c1d1,a2b2c2d2,...	+legend
			* stacked data : a1b1c1,a2b2c2 + legend
		* Surface plot :
			* set z range ?
			* custom contour level (Rudi)
			* plot points and Delaunay triangulation
			* reading x-y-z data	(gyrodata.dat)
			* scaled values (z-Axis)
				* logarithmic z-axis ? (legend)
				(contour lines 1e0,1e1,1e2,1e3 )
			* relative colorscale used ?
			* select range to draw (dont draw other pixel)
			* filled contour plot
			* contour label
			* third type : vector field plot, windbarbs	-> data format ?
			* test more than 1 graph
			* read date/time matrix
			* improve  legend (0..1)
				* KGradientSelector
				* rbg vs hsv
			* contoulinien glttung einstellbar
			* es wre gut min/max fr z von hand angeben zu knnen. auf diese weise knnte
				man z.b.  einen bereich farblich 'hochauflsen' und alles ausserhalb mit der
				min bzw. max farbe fllen bsp: werte  0 bis 10
				min fr farbskala 4, max 6 > bei grey.map wre dann alles bis 4 weiss, alles 
				ber 6 schwarz ...
			* x bzw. y achse auch auf der gegenberliegenden seite (wenn ich die density
				ausschalte fehlt mir dort ein rahmen und die ticks [ohne labels])
			* wenn ich aus einem xyz datensatz einen qwt3d plot mache. habe ich nur punkte
				und keine mglichkeit gefunden eine oberflche zu erhalten (bersehe ich was?)
		* QWT3D plot :
			V BUG : QWT3D plot rescaled if mouse disabled
			V BUG : QWT3D zoom doesn't work
			V BUG : QWT3D plot moving legend+title doesn't work	
			* bei dem QWT Plot wrde mir z.B. die Mglichkeit der Farb- oder
				Radiusnderungen der einzelnen Kugelobjekte sehr helfen (wiederum aktualisierbar).
			* more analysis functions
			* support two datasets ?
			* Example datafile to import in a qwt 3d plot, that returns for me only a very
			basic wireframe (the data is a time evolution of a concentration profile, so
			(t,x,C(t,x))) in attachment.
			* connect points in qwt plot
				delaunay triangulation
			F Surface/QWT plot :
				* dens_indizes : 24x24x40 ?
				* test dens_3d_in_one_row (after convert to matrix : howto ? )
				* test irregular X-Y-Z data : data points ? / mesh grid ?
			* legend box undefined (used for legend.inside() !)
			* use Qwt3D::USERSCALE for log2,ln,sqrt ?
			* custom plotstyle (boxes, etc.)
			* vector plot
			* speed mode
			* animate plot (update data ?)
			U base line ?
			U show/hide (works with two graphs !)
			U title : boxed, rotation, (richtext : greek, sub, super (?))
			U legend: boxed, (minors, majors), tic font
			U axes :
				* fix log scale range
				*log2/e/sqrt scale / range, scaling, shift
				* label : boxed, rotation, gap (position) to axis
				* richtext label(?) : color, greek, sub/super
				* tics label format, precision, rotation, pre+suf, color, pos(in/out)
				* grid style, color for every axis, width
			U open dialogs with mouse double click
				-> see qtiplot	 graph3D.cpp eventFilter
					-> QWidget ?, mouse double click ?
			U use actions toolbar : mag, pan, data, mask
			U multiple graphs
				U add function/data in qwt3d graphlist
			U x-y-z data : not only points style : howto ?
			U analysis functions (result ?)
			U support errorbars (error plot ?)
			U zoom in 3d data
			U drawing objects (after freeze plot)
			U multiplot with qwt3d plot (Plot::savePixmap() ???)
				-> qwt 0.3.0 ?
		* 3D plot :-> better use QWT3D plot
			* x+sqrt scales
			* y axes tic scale + rounding bug
			* 3D error plots :
				* DataDialog : "x-y-z-dz" (GRAPH4D : 3D error)
				* plot in Plot3D.cc
			* baseline 3d
			* xy-region for 3d integration, fit, etc.
			* convert 3d type to matrix (NX=64 & NY=1 -> NX=NY=8)
			* connect type 3d data points in 3d plot
			* 3d data -> set nx, ny
			* 3d matrix display : use nx and ny
			* correct boxes style
				* change x,y actranges (not ranges !)
			* known 3D bugs
			* fill with colors (z-value,colorscale), contour (new style type ?)
			* transparent filling (no hidden3d)
		* Pie plot :
			* explode segments
			* segment legend
			* brush
			* scale pie % with plot
			* round % (using precision ?)
			* tic label format, rotation
			* axes dialog : from 0..1 (disable) ?
			* make a legend from all points (1 - 12 %, 2 - 27 %, ...)
		* Polar plot :
			* coordinates
			* plot minor tics, minor grid
			* tic width/grid/border properties
		* Ternary Plot :
			* coordinates
			* tic label precision + format
			* 3 custom axes label
			* tic label gap
			* tic width/grid/border properties
			(* draw minor tics, grid)
			(* use axis scale)
		* More plot types :
			* support waterfall plot (see matlab)
			* Pie3D plot
			* Polar3D plot	(r,theta,phi)
			* xy chart (xmgrace)
			* smith plot
			* implicit plot (x+2*y=1)
			* space curve (sin(t),t=0..10) (cylindrical coordinates r,phi,z)
			* rose plot (polar histogram)	[-> wind directions]
			* polar contour
		* support x=f(y) plots (f(x)=sin(y))
		* ArrangePlotDialog :
			* size+pos for nr = 9,10,11,12,13,14,15,16
		* data over (structured-unstructured) meshes, like 
			the ones generated in finite element modeling, 2D and 3D.
		* support for 2D/3D indexed data		-> CRD/
			However, for aerodynamic visualisation I am looking for a program that can handle
			data in the 2D/3D index space. I am not so much interested in plotting
			math functions but data stemming from CFD grid generation and CFD
			solution. So my data is mostly looking like this:
			
			Two/three nested do loops would run over this index range
			I = 1 .. NI
			J= 1 .. NJ
			K=1 .. NK
			Reading such a list of variables
			X(I,J,K), Y(I,J,K), Z(I,J,K), CP(I,J,K), RHO(I,J,K), . and so on. 
	
			In such a way I can handle arbitrary surfaces and assigning each surface
			point a variable value for achieving contour plots e.g. However, I found
			out (please correct me if I am wrong) that data is handled in the
			physical space in LabPlot, only. The matrix data format makes it
			impossible to assign each special point additional scalar values.
	* A simple way to create x-y1-y2 plots where axes y1 and y2 are very different from 
		each other, with independent scaling on each axis.
		: overlay two plots (x-y1+x-y2) with same x-axis
		-> implement as QSA macro
	Axes :
		* axis tic label format :
			* the settings of the tics are quite complicated :
				* auoscale in axes dialog ?	-> change act range to active graph range ?
			* PI (0,PI,2PI)
			* hexadecimal, binary (000 001 010 011 100 101 110 111)
			* degree (210'33'')
		* (fast) flip x-y graph
		* scales :
			* x	: -10..10 ?
			* new 1/x,1/x scales
			* db axis scale (exp+log)
	* Ebenso fehlt die Zeichenbefehlen zum Gruppieren / Gruppe aufheben, eine 
		Zeichenebene nach oben / unten oder nach ganz oben oder unten verschieben
		Click + Ziehen um alle Elemente im aufgezogenen Bereich auszuwhlen wre
		gut. (Dann Rechtsclickmenu zum Gruppieren anbieten.)
		V wenn man Textdaten, oder eine lange Zahl im Maus-Clipboard
			(x-Clipboard) hat, und sie in eine Zelle einfgen will, dann klappt das 
			nicht direkt, sondern man mu die Zelle erst mit F2 oder Doppelclick in 
			den Text-Bearbeiten-Modus bringen. Intuitiv einfacher wre es, wenn die 
			Daten durch einen Mittelclick eingefgt wrden - und noch besser, wenn 
			diese Einfgung auch Spaltensprnge mittels "TAB" und Zeilensprnge 
			mittels "CR" verstehen wrde.
		V Wenn man einen Bereich kopiert, und dann in eine Zelle einfgt,
				(wobei die Tabelle nicht bei bedarf nach rechts oder nach unten vergrert wird.)
				* am besten wre es m.E. nach, wenn einfach stillschweigend die 
				Variante der automatisch vergrerten auswahl passiert, wenn die 
				betroffenen zellen leer sind, und nur beim berschreiben anderer Daten 
				nachgefragt wird.
		O Die am rechten Rand berstehenden Daten werden trotzdem schon 
				versteckt eingefgt (d.h. man kann sie normalerweise nicht lschen) und 
				tauchen pltzlich auf, wenn man von Hand neue Spalten einfgt. - Es wre 
				besser, wenn diese Spalten gleich beim Einfgen von Textdaten, die ber 
				den rechten Rand hinausgehen automatisch erstellt wrden.
		O Zum Kopieren und verschieben fehlt mir eine gute Tastaturnavigation 
			im Arbeitsblatt. (z.B. Crtl+Cursor - Analog zum springen zum Wortanfang, 
			oder zum nchsten Absatz: zum nchsten bzw. vorigen Wechsel zwischen 
			leeren und ausgefllten Feldern springen. Crtl + PageDown: eine 
			Bildschirmbreite, oder auch ganz nach rechts im Worksheet. Crtl  + Pos1: 
			Nach ganz links oben springen. Crtl + Ende: nach ganz rechts unten (bzgl 
			der vorhandenen Daten, nicht der verfgbaren Spalten) springen. Zum Ende 
			der Spalte Springen)
		* Neben dem Datei-Men sollte ein echtes Edit-Men stehen, mit dem man die 
		jeweiligen Objekte kopieren, ausschneiden, einfgen oder lschen kann, 
		ggf auch ein "Einfgen als". (irgendwann auch falls sinnvoll: 
		"Wiederholen" eines Edits am aktuellen Objekt und "Rckgngig".)
		* In den Office-Tabellenkalkulationen kann man mit Tab separierten Text 
		direkt aus der Text-Zwischenablage mehrspaltig einfgen und aussschneiden.
		Bei Doppeltabs werden dann auch mehrere spalten auf einmal bersprungen. 
		(ich hoffe, es kommt in Form von Tabs an...)
		1    2    3    4
		1    2        4
		1    2    3    4
		1        3    4
		* Um bei LabPlot Text aus der Zwischenablage einzufgen, muss man entweder 
		ber das Men gehen, oder die Zelle in den bearbeiten-Modus schalten 
		oder crtl+v drcken. Ein direktes Einfgen mit der mittleren Maustaste 
		geht noch nicht. - Und einfaches Markieren zum Kopieren in das 
		Text-Clipboard geht auch noch nicht.
		Normarweise:
		crtl + "Einf"gen  == Crtl + c == Kopieren ins Clipboard.
		shift + "Einf"gen  == Crtl + v == Einfgen aus Clipboard.
		shift + "Entf"ernen == Crtl + x  == Ausschneiden richtung Clipboard. 
		(zum Verschieben von Elementen, die danach mit Crtl+v wieder eingefgt 
		werden).
		Die Kombinationen mit "Einf"gen und "Entf"ernen versteht LabPlot nicht
		- knnten sie noch ergnzt werden?
		* Es knnte noch etwas Keyboard-Navigation ergnzt werden:
		Crtl + Cursor: Sprung zum nchsten Wechsel zwischen leeren und gefllten 
		Zellen in Richtung des Cursors (um an das Ende des aktuellen Datenblocks 
		zu springen / bzw. zum beginn des nchsten Datenblocks.) - Wenn 
		gleichzeitig Shift gedrckt wird, dann die aktuelle Markierung erweitern.

		Crtl + Bild-Ab : Eine Fensterbreite nach rechts
		Crtl + Bild-Auf: Eine Fensterbreite nach links.
		(bei gleichzeigigem Shift: Bereich zwische erster Position und letzter 
		erreichter Position markieren
		
		Im Arbeitsblatt fehlt mir die Mglichkeit Einzelelemente, wie
		Achsenbeschriftung / Titel / Legende o.. als aktives Element
		auszuwhlen und dann mit den Cursortasten anstelle des Graphen zu 
		verschieben (Crtl+Cursortasten: Pixelweise / bzw. fein verschieben)
	* extract feature (see grace)

ANALYSIS :
***********
	*  Analysis: approximation 
		In the analysis menu, there is "interpolation", but it
		is often desirable to have approximation instead.
		Smoothing is not an alternative to a solid
		approximation. A good approximation (for example, by an
		exponential spline) can also be the tool to create
		relatively noiseless derivatives - something currently
		lacking, as far as I see. 
	* curve discussion (root finding (GSL), local max/min, etc.)
	* 2D histogram
		* graph3d	 -> read 2d transform
	* mask : average, smooth, compress, period, season, prune, hist, peak, diff, fft, interpol, convol, wavlet, hankel
	* from spreadsheet : peak, regression, fft, convolution, wavelet
	* GraphM : period, seasonal, prune, peak, diff, int, interpol
	* addon functions fresnel/tamu-anova/Whittaker+Rydberg ?
	* Statistics
		* Box & Whisker plot
			* support box plots : F Can Labplot make boxed 2d plots? Like origin in win or kpl in linux?
			I did not found this options in axes. If it is so, could you add this options in next version?
			In scientific word such plots are always preferable.
		* MatrixRListDialog : matrix operations : diagonalize, eigenvalues, invert, ...
			* on Spreadsheet
		* TestsRListDialog :
			* more tests/ options
				* check stat12b.pdf
					* binom, chisq
				* check stat R package docu
			* AnovaRListDialog.cc
			* Survival Analysis
	* check out KST plugins :
		* periodigram (720 lines)
		* cross spectrum (150+3500 lines)
	* Regression
		U log, exp, sqrt, -> see xmgrace : a*x^b, a*exp(b*x), a+b*ln(x), 1/(a+b*x)
		Y=a*x^b, Y=a*e^(b*x), Y=c+a*e^(b*x), Y=a*e^(b/x), Y=a+b/x, Y=a+b*log(x)
			mglicherweise wre manchmal auch eine Skizze des ausgewhlten Modells vorteilhaft.
	* FFT
		* inverse ( gsl_fft_complex_inverse/ fftw REDFT00,RODFT00, etc.)
		* data window
		// halflen (all values)
		// amp_correction
	* Noise :  matrix / 3d plot / image
	* nonlinear fitting
		* guess initial parameters
		* Origin bietet auch die Mglichkeit dass mehrere y-Spalten, die gefittet 
			werden gemeinsame Parameter ("shared") haben knnen. (z.B. mehrere 
			Messkurven, unter die man jeweils den gleichen untergrund fitten 
			mchte.) - damit lassen sich im Prinzip die statistischen Fehler 
			verringern. - Wie das allerdings im Algorithmus erreicht wird, weiss ich 
			nicht. - Siehe Screenshot. "Origin-Fitting1.jpg"
	* differences :		(dy(x))
		* use gsl numeric differences
	* integrate :
		* gsl numerical integration
		* weighted ?
		* use the correct function if available	(checkbox) -> undefinite integral (?)
	* histogram :
		* logarithmic bins (see GSL docu)
		* weighted	: gsl_histogram_accumulate (h,x,weight)
			-> weight what ?
	* (de)convolution of two data sets :
		* use fftw/fftw3 too
		* use mixed radix fft 
		* 2D convolution (using 2d fft)
	U simplify fit equation :
		You insert 3 equations k1*x+y=2, y=k2*x^2+z, z=k3*x^.5+x^3
		So, in the end if you replace y and z in the first equation, youll have only
		one equation, and only one curve: k1*x+k2*x^2+k3*x^.5+x^3=2
		Origin has this feature to simplify the writing of very large equations.
	* smooth Savitzky-Golay (point-wise polynomial fit/ see Numerical Recipes)
	* image operations ?
	* all selected graphs/cols ?
misc :
	* world/viewport coordinates
		* range from 2..4 in graph
	* select range by mouse
