LabPlot WISHLIST: ################# GUI/Application: **************** * use QLabel::setBuddy() for accels * Q_CHECK_PTR() for all pointer ? * browse on the fly (Daniel) * remove included audiofile/ ? * configure : (* save data in project as link (yes/no)) (* open new Plot in active Worksheet or in new Worksheet) * graphs (link to data !) * Spreadsheet * Selection like Kaleidagraph (Pascal) * format in spreadsheet (show as ..., convert isodate->double, double->isodate, ....) U mark column if right clicked on header -> too complicated U speed/memory optimization : U LTable : QString **data or double **data ? * import data * (see Roberts mail (AirLineFit)) old : >5min, 395M new : 1:03 min, 102M * fill random/row number * check all functions ! * get the index of the double clicked object (for object dialog list index) * nicer dialogs * exclusive buttongroups (enable/disable) when needed * completion of line edits (filename) : use KDECompletion ? (filename, ...) * include kghostview menus and toolbars, etc. in print preview (see kgv_part.rc) -> how to delete gv part gui elements ? * use STL contructs for some critical objects (see C++-Unleashed & SGI docu) * animations I/O: **** * GraphIMAGE : (* hdf5-1.6.1 (h5utils-1.9), more image formats ? (see xv, tnimage, gimp) ) (* use KImageIO::pattern (filter for all image files when opening) ) (* ImageDialog : add more methods (see ImageListDialog.cc) ) * GRAPH2DL, GRAPH3DL -> x-y-label, x-y-z-label * use for pie plot segment label, 2d annotate label * set cbi->currentItem with re-read data dialog * reading multiple files from data dialog -> also "same x column" * seperate data file from project file * saving a data file name in a project file instead of the data itself (hotlink data) * IMPORT/EXPORT * "1.234D-002" not known -> read FORTRAN data * import PostgreSQL connection * fix import problems : > When I try to import data from the DB, I open the import dialog > and select the "PostgreSQL, mySQL, etc" filter. I then select > the PostgreSQL driver, add the neccessary connection information > (hostname, username, password) and LabPlot indeed shows all > databases installed on this DB server. I then select the database > I'm interested in and LabPlot shows a dialog to select the > table - but the list of tables is empty so I can not select the > table containig my measurement values! > In the PostgreSQL logs I see the following messages related to this: > > [...] > ERROR: relation "kexi__db" does not exist > ERROR: relation "kexi__objects" does not exist > [...] a) Possibility to "connect" LabPlot to a free hand database ~ query like ~ SELECT ts AS x, pv AS y ~ FROM t_mv ~ WHERE zr=502 AND ts BETWEEN '2005-06-01 00:00:00' ~ AND '2005-06-02 00:00:00'; b) Possibility to store the query (not the data) inside the ~ LabPlot project ("by reference"). That way it would be ~ possible to get any updated data very easily and the project ~ file would be quite small even for large datasets. Of course ~ it should also be possible to store the dataset "by value" c) Possibility to assign properties to the columns returned ~ by the database query (like axis, domain, etc.). It would ~ also be nice if LabPlot could automatically determine those ~ properties in a more or less intelligent way from the database ~ metadata. d) Support for advanced features like SQL arrays. If column ~ pv of paragraph a) was an array, this would automatically ~ lead to a 3-dimensional dataset (ts=x, row in the array=y, ~ value of each element in the array=z) e) Possibility to connect some of the where clauses of the ~ query to a list of elements, possibly connected to some ~ other table in the database, and let the user iterate ~ through the list. That would add just another dimension ~ to the evaluations. * read date format "2000/12/24" ("Temperatur.dat") U import/export data to/from openoffice/kspread formats : filter ? * ignore columns * multiple column files (NXY) -> XYYYYY... / YYYYYYYY, X-index * read/dump matrix data from/to netcdf/cdf (also images) * progress when exporting data * only export selected region * export to audio * option : 8/16 bit * option : sample format * binary data : * Filter "LeCroy binary" -> too complicated * "HP binary" * other data file support -> examples/fileformats/ * piolib, boomerang and blast (see kst) * zip, rar,... compressed data * import project files ? * grace, kst, kpl, qtiplot * sigmaplot, kaleidagraph, flexpro, axum, igor, ... drawing/ data manipulation : ******************************* * use GMP for higher precision floating point numbers * better handle discontinuities [-2:2] (x*exp(x/(x*x-1))) * Symbols * more symbols : N types (...) * more fills : 16 types (center, corner,...) * character as symbols * opaque symbols * (x/y/x,y) values as symbol * move marker with mouse * image profiling (vertical/horizontal profiles) * audio file data editing like normal audio programs -> Analysis * fade in / fade out * ... * 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). * Plots : * set drawing object relative to graph (fixed to axes) * axis position (left,center,right) * sqrt/x² scales * data mode Plot.cc * maglens/mask/pan zoom (Worksheet.cc) * X/YCoordinate * partRanges * period or comma as decimal point (configure LabPlot) * broken axes * gradient plot / graph background, fill -> use QBrush of Qt 4.0 ? * zoom-plot (extra plot as zoom of another plot) * legend : * background * multiline label * annotated values : * use own format and rounding (see axes settings) * rotation * size, color, font * handle log axis errorbar problems (y=1,dy=2, etc. ) * place legend automatical in a corner * Surface plot : * 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 * QWT3D plot : 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 ? * use settings from style tab * custom plotstyle (boxes, etc.) * vector plot * speed mode 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 label gap/rotation * tic width/grid/border properties (* axes scale ) * 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)) 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 (2°10'33'') * (fast) flip x-y graph * scales : * x² : -10..10 ? * new 1/x,1/x² scales * db axis scale (exp+log) * grid, ticks and numbers : in or out of plotarea * minor tic label for log scale (?) * extract feature (see grace) ANALYSIS : *********** * 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 * Statistics * t-Test/f-Test * 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. * use a statistics library ? * check out KST plugins : * periodigram (720 lines) * cross spectrum (150+3500 lines) * Convolution * use fftw / fftw3 * 2D convolution (using 2d fft) * Regression U log, exp, sqrt, -> see xmgrace : a*x^b, a*exp(b*x), a+b*ln(x), 1/(a+b*x) * 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 Möglichkeit dass mehrere y-Spalten, die gefittet werden gemeinsame Parameter ("shared") haben können. (z.B. mehrere Messkurven, unter die man jeweils den gleichen untergrund fitten möchte.) - 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 too * use mixed radix fft * 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