Getting SciGraphica

Getting GtkExtra

Getting GTK+


Graph Galleries


Mailing Lists



SciGraphica link button

Sourceforge link button

Valid HTML 4.01!

SciGraphica-2.1.0 Released!

SciGraphica-2.0.0 is finally available for download. The new version is a port to Gtk+-2.x that relies on the new libscigraphica libraries. These libraries are the kernel of the program and provide all the widgets and dialogs, as well as the new plugin system. This new plugin system will allow users and developers to create their own plot types, menu items with new functionality (such as fitting -- already included), data styles, file formats, and interfaces to other programs. Now, you can easily add plotting capabilities to your own programs by taking advantage of the libscigraphica API.

SciGraphica is a scientific application for data analysis and technical graphics. It pretends to be a clone of the popular commercial (and expensive) application "Microcal Origin". It fully supplies plotting features for 2D, 3D and polar charts. The aim is to obtain a fully-featured, cross-plattform, user-friendly, self-growing scientific application. It is free and open-source, released under the GPL license.

Main features:

  • You can plot functions and manipulate data in worksheets.
  • You can open several worksheets and plots and work with them interactively and at the same time.
  • The plots are fully configurable using a control panel dialog.
  • The look and feel is completely WYSIWYG.
  • Production/Publication quality PostScript output.
  • You can interact with the plots double-clicking, dragging and moving objects with the mouse.
  • Native XML file format.
  • You can insert Python expressions in the worksheets.
  • Terminal with command-line Python interface for interacting with plots and worksheets

It is completely programmed in C from scratch, using the GTK+ and GtkExtra libraries, and released under the GPL agreement.

Data manipulation and fitting features are in the roadmap.

"...What I saw was terrific. You double click on one of the axes, and a very, very well-structured dialog opens. The structure strongly resembles an explorer-like approach which is very familiar to most people and >> R E A L L Y << self-explaining! The settings have exactly the intended effect, as you click the "APPLY" button. The graphics itself is really clean and has print quality. It was no problem for me to generate a new plot layer and adjust the two graphs in size so that they match in width, spacing and so on.

To my opinion, this outperforms any graphing tool else that I found until now under GNU/Linux. This is not just an excellent program, I consider it to be on the way to a KILLER app for the scientific world!"

Dr. Randolf Mock
Siemens AG
81739 Muenchen, Germany.


06/23/05 - New version 2.1.0 with dozens of bugfixes and some GUI improvements
05/17/05 - After a long period of apparent inactivity, I finally released libscigraphica and scigraphica, with ports to gtk+-1.x and gt+-2.x
12/06/01 - New and updated Tutorials available in PDF form in the Documentation section. Online HTML versions are on their way. [The Documentation Team].
12/04/01 - We release SG-0.8.0 featuring major enhancements like antialiasing , matrices, arbitrary meshes for 3D plots using Delaunay triangulization, new strategy for retrieving data from worksheets and using the same dataset in different plots, custom page size, and improvements in the GUI and dialogs. Take a look at the README file for more details.
07/26/01 - We release SG-0.7.1 featuring bugfixes and small feature enhancements. First version of the SG plug-in system that allows users to add dialogs and more features using Python.
07/02/01 - I release SG-0.7.0 with dozens of bugfixes and enhancements. Among other things, embedding images is now possible, as well as setting background images for the plots. Clipboard for plots: copy a plot, and paste it on a different plot window. Improved PostScript and WYSIWYG. It includes, a Python module for interacting with plots and worksheets from the terminal. New scheme for storing numerical data in worksheets. Examples are included.
03/09/01 - I release SG-0.6.3, with dozens of bugfixes and enhancements, including: better PostScript output, Preferences dialogs, autosave and emergency rescue, and 1st version of a Bonobo interface.
02/07/01 - I release SG-0.6.2, with bugfixes and Conrad's administration tool for managing Python modules.
01/11/01 - Sg gets a brief mention in the's 'Linux in Science Report #6', saying

"Another WYSIWYG graphing program, SciGraphica purports to be a Microcal Origin clone and my initial exposure to it thus far reminds me of SigmaPlot. I'm still getting up to speed with it, but it seems that between SciGraphica and Grace, Linux users have access to two great graphing packages that will make them the envy of their Windows and Mac colleagues. Latest release 0.6.1. (GPL)"

12/05/00 - I release SG-0.6.1, with bugfixes and Conrad's improvements in the worksheets.
11/21/00 - I release SG-0.6, featuring 3D and polar plots!. The new version allows also to plot new types of datasets: vectors, bubbles, boxes, contours.
11/06/00 - I updated the dialogs for fully configurating the 3D and polar plots. Conrad has finished the dialog for inserting special characters in the labels (infinity, perpendicular, etc).
11/01/00 - I committed to CVS the new code implementing 3D and polar plots. This includes the new data types for drawing bars, boxes, bubbles, vector, and contour plots.
08/30/00 - We released SG-0.5, compliant with GtkExtra-0.99.11 and including a Python Terminal and examples. Among the new features you'll find that the "Set Column Values" is now usable, and that you can plot functions. Numerical Python is no longer an option, it's mandatory.
07/06/00 - I committed the code to make SG compliant with gtkextra-0.99.9. It includes the dialogs for creating and adding function datasets. Conrad is working on the Python wrapper.
07/01/00 - Conrad uploaded to the CVS tree the code of the zvt terminal.
06/20/00 - I released version 0.4 with the new improvements.
06/20/00 - First press release!. We are featured in an article about Free Software, and included in the CD-ROM attached to the japanese version of Linux Magazine.
06/13/00 - I commited to CVS the new version including Conrad's improvements (among other things, he added rulers to the plots), the new tools for drawing lines, arrows, rectangles and ellipses, and the new toolbar. We'll be ready for a new release after updating the code for importing the figures.
06/12/00 - I relesed GtkExtra-0.99.7 with important improvements in GtkPlotCanvas. We can embed figures (lines, arrows, rectangles, ellipses) and images. I am preparing to upload the updated code of SciGraphica to CVS.
05/31/00 - Scigraphica version 0.3 released! The new version includes Conrad's Python interface and importing/exporting features using libXML. This adds two new dependencies to the package.
05/22/00 - I almost completed the exporting/importing code using libXML and committed it to the CVS repository. The code resembles LibGlage, and the format for worksheets, Gnumeric. Although this is adding another dependency, libxml is cross platform and will not affect the eventual port to Win32. We'll also be able to read Gnumeric files!.
05/15/00 - Conrad added Python functions. You can insert formulas in the worksheet's cells!.
05/13/00 - The source code is put in CVS.
05/12/00 - Conrad Steenberg has joined the team and he's hard working on all the Python functionality.
05/08/00 - This first pre-alpha release consists esentially on the GUI and the Control Panel.


Scigraphica is GNOME compliant, but it's optional. In this way, we can take fully advantage of Gnome features when it is present, and also compile independently.
In the future, we may be able to integrate Scigraphica features with Gnumeric using the Bonobo component.
SciGraphica depends basically on Gtk+, GtkExtra and Python. This will allow SciGraphica to be cross-plattform and eventually compile on Win32.


SciGraphica could be compiled on Win32 as soon as GtkExtra is. Apparently, this would be possible right now, without further modifications to the code. You are welcome to try, we are waiting for your success story.


  • Konrad Hinsen's webpage contains links and very good documentation about Python for Science and the Scientific Python package.
  • Scientific Python features algorithms for first derivatives, interpolation, and least squares, among other things. We are working on the GUI, gtkLeastSquares, which is include in SG after version 0.7.0
  • Support netCDF file formats is also included in Scientific. You can use it to read netCDF files, and import the data to the worksheets

TODO (for 1.0)

  • sg-0.8.0 will have a completely different structure, more modular, built on top of reusable libraries. SGplot, SGworksheet, SGlayer, and SGdataset will be GtkWidgets and part of a shareable library, that could be used by other applications, and from Python.
  • Numerical and fitting algorithms (almost there, you can use Scientific Python).
  • Pluggin system using Python. Loading modules will allow users to customize file formats and interact with the plots and worksheets using Python and the SG libraries.
  • Documentation and help. (This is the part we all hate doing, but is mandatory)


This is an outline of the features that SciGraphica 1.0 will (hopefully) have (borrowed from Korigin).
Items marked with a (*) are already implemented.

  • Data Types:
    • Numeric (*)
    • Text (*)
    • Python expressions (*)
    • Date, Month, Day, Time

  • Data Import:
    • ASCII Tables in many variants (*)
    • Several spreadsheet formats
    • Microcal Origin files (Origin format is propietary and this feature looks unreliable)

  • Data Export:
    • ASCII Tables (*)
    • HTML Tables (*)
    • TeX/LaTeX Tables (*)
    • Several spreadsheet formats

  • Data Manipulation (most of this tasks are already doable using Scientific Python):
    • Normalization
    • Data sorting
    • Calculations from data ("Set column values") (*)
    • Linear regression
    • Polynominal, exponential, and "free" linear/non-linear fits
    • Numerical Integration/differenciation
    • Fourier analysis
    • (Multiple) Gauss/Lorentz peak fitter
    • Peak finder
    • Constraints
    • Statistics

  • Command Shell:
    • A Python interpreter with numerical extensions (Numpy, Scientific Python) (*)
    • Python bindings for SciGraphica library calls.(*)
    • Pluggin system using Python.

  • Data Visualization:
    • X/Y Plots (*)
    • Histograms
    • Polar charts (*)
    • Contour Plots (*)
    • 3D Plots (*)
    • Bar charts (*)
    • Pie charts (out of scope)
    • Embeding images. (Maybe after GTK-1.4/gdk-pixbuf)

  • X-Y Plots:
    • Scatter, Lines and H/V Bar charts (*)
    • H/V boxes, Bubbles, and Vectors (*)
    • Contour plots (*)
    • Functions (*)
    • Linear and Log scales (*)
    • Fully configurable axes (*)
    • Custom ticks labels (*)
    • Major, minor grids (*)
    • Legends (*)
    • Zoom in/out (*)
    • Autoscale (*)
    • Text (*)
    • Arrows , rectangles and ellipes. (*)
    • Drag and Drop plot objects (*)
    • PostScript export (*)

  • 3D Plots:
    • Scatter and Lines(*)
    • Bubbles and Vectors(*)
    • Surfaces (*)
    • Contour plots (*)

  • Plot Layout:
    • Multiple paper formats (*)
    • Arrangement of multiple plots on a page (*)
    • Layout templates (page templates) (*)

Adrian E. Feiguin

A cheeky peeguin ;0)