Altaxo on SourceForge.net Logo

Users

Screenshots 

Developers

Project Home

Project admin

Dirk Lellinger

Downloads

Altaxo 0.54 installer file

Documentation

Altaxo class reference (Core+Base)

Mathematical core class reference

Other projects from the author

Syncoco synchronization by transfer medium

Altaxo

I wrote Altaxo as an effort to learn C#. The best way to do that is to write a nontrivial program in that language. For a long time I searched for a free Alternative to plotting programs like MathSoft Axum® or Microcal Origin®. Of course there is Gnuplot, but it's command line centric. So in 2002 I decided to learn C# by writing a plotting program.

02. February 2007 : Altaxo 0.54 released!

This version is based on SharpDevelop 2.1 (see the SharpDevelop project), it has the GUI of SharpDevelop, including Help browser, docking pads, and tabbed windows.

This version is a significant update. The drawing logic has been completely rewritten to allow other coordinate systems, for instance polar coordinates. The grouping logic of plot items also has been renewed. This allows for other plot styles, for instance column chart plot styles (and bar chart too - thanks to the updated coordinate system), stacked bar charts or relative bar charts and waterfall diagrams. An error bar style is now included too. Other new stuff (from version 0.53 to 0.54): The user interface for nonlinear fitting now supports predefined fitting functions (defined in the program - not changeable), user defined permanent fitting functions (stored in the users application directory) and document fitting functions (stored directly in the document). The GUI now allows to configure nearly all options of a pen or brush. Thus a lot of new possibilities to style your graph have been created.

Attention: This version of Altaxo needs the .NET framework 2.0 or 3.0. See "Installation" below for details.

Features in version 0.54

GUI

  • Altaxo has the GUI of SharpDevelop and as such, it features pads and views, including an internal help view.
  • Worksheet Views (as many tables as you want)
  • Support for a huge number of columns (I tested it with a hundred thousand)
  • Property columns (this are "horizontal" columns) that hold meta-data for the columns (for instance column labels, column units, or numbers)
  • Simple dragging for change of column width
  • Selecting rows, columns and property columns, even non-contiguous regions
  • Copy and paste of selected areas, if the region does not match, the transposed region will be pasted in (if this matches better)
  • Renaming of columns / worksheets /
  • Project explorer shows all graphs and tables
  • Graph and Worksheet views can be closed without removing the underlying graph / table (they can be opened again using the project explorer)
  • Output text pane to show fitting results and messages. Also quite usefull when debugging worksheet scripts
  • File pane for browsing the file system and direcly open or import files.

Plotting

  • Line and scatter plots (and both combined) with a lot of options, including fill styles and drop styles.
  • Label style (labels can either be attached to the data point, or to one of the axes)
  • Column charts and bar charts, including stacked charts and percentage charts
  • Support for different layers. Layers can be rotated, scaled, and linked to other layers.
  • Support for different coordinate systems. Currently implemented is 2D cartesic and 2D polar coordinate systems. 3D cartesic is in experimental state.
  • Support for graphics elements (only the text element can be edited and created by menu; image, line, rectangle elements are supported by the library)
  • Density images, i.e. visualization of 2-dim. meshed data, currently only in cartesic coordinates with linear axes.

Input / output

  • ASCII import with automatic structure and number format recognition
  • ASCII export (tab separated)
  • Picture import (as brightness values)
  • Galactic® SPC file import (multiple files selectable)
  • Galactic® SPC file export wizard
  • Import of Origin .OPJ files (only worksheet data), although not toroughly tested.
  • Export of graphs as WMF (Windows Metafile)
  • Export of partial least squares (PLS) calibration files (XML format)
  • The Altaxo document is now stored as ZIP-file. The worksheets and graphs are stored in XML file format inside of the ZIP-file. Support for versioning.

Data analysis / data processing

  • Complex number library (thanks to the Exocortexdsp project)
  • Growing collection of special functions (Bessel related functions, Gamma related function, Error functions, spherical functions, scientific functions (most of them are C# translations of Berndt Gammel's C++ Matpack library)
  • Random number generators, probability distributions.
  • Interpolation functions: polynomial interpolation, rational interpolation, cubic splines and and and...
  • Polynomial fitting
  • Fourier transformation code (FFT algorithm in 1 or 2 dimensions, 1 dimensional FFT of arbitrary length)
  • Chemometric methods, like partial least squares analysis (PLS), and principal component regression (PCR)
  • Matrix operations (some are from Lutz Roeder's mapack library)
  • Statistics (column statistics, row statistics)
  • Non-linear fitting. Multiple fit functions can be simultaneously fitted. Parameters can be shared between multiple fitting functions.

Scripting / programming

  • Column scripts, worksheet scripts, function scripts, fit function scripts and more.
  • Script language is C# - you can use the hole bunch of classes of the .NET framework and all the classes of Altaxo itself!
  • Script execution is very fast since the scripts are compiled.
  • All scripts with syntax highlighting and code completion feature. You will see the documentation summary of the function/class.
  • Help pane with Altaxo class reference
  • Addin support (addins are DLLs that are linked to the program, see the SharpDevelop project)

Planned features for the next version (0.55)

  • Better support for density images.
  • Addition of some data analysis functions.
  • More built-in non-linear fitting functions.
  • Maybe I will go to 3D, but up to now I'm not sure  what framework to use for it (OpenGL, DirectX, WPF). Any hints are welcome.

Developers, Testers, Doc Writers Needed!

Help by other developers is greatly appreciated!

Help is especially welcome in the following areas:

  • Mathematics: to implement the statistical functions, linear and non-linear curve fits, and special mathematical functions
  • Help system: since the column scripts can use all public classes and objects from the program, a good documentation of these classes is absolutely necessary
  • Help system: to write an user's guide

Installation

  • Attention: This version of Altaxo (0.54) needs the version 2.0 or 3.0 of the .NET framework!
  • For those who have already installed the .NET runtime 2.0 or 3.0 or use Windows Vista: just download the Setup.msi file and double-click it! The installer will do the job then!
  • For those who have not already installed the .NET runtime: install the .NET runtime first (preferably now version 3.0). You only need the redistributable, it is available in different languages. You can download it from Microsoft here, it is around 33MB). After installation of the .NET framework 3.0 redistributable, download Setup.msi and simply double-click on it.

Using Altaxo

I actually not have the time to write a user's guide. Help on that is greatly appreciated (see above). If you want to have  an overview, which classes exists in Altaxo and if they may be usefull for you, see the combined (core+base) Altaxo class reference

Support

Altaxo is free software! Altaxo is an Open Source project, that is covered under the GNU Public License. As such, your main form of support for Altaxo will be through subscription to the Altaxo mailing list. In addition, SourceForge has bug tracking capabilities, so please report any bugs here. Wish list items will also be considered, but I make absolutely no promises. 

Localization

Altaxo was initially written with an english user interface. The code (the class names and the comments) is also in english. This is especially important since you can use the classes in your own column and worksheet scripts.

So far no plans exist to localize Altaxo to other languages. Due to the nice localization support of the SharpDevelop project used for the GUI, it should be possible to localize Altaxo for other languages.