![]() ![]() That said, Veusz generated gorgeous plots and I've been moderately happy with both. ![]() The epslatex terminal leaves the text to LaTeX, so we get uniform fonts across both the document and the plots, which is nice. gnuplot seemed to do a better job generating plots that integrated in LaTeX documents. ![]() Perhaps there's a way to do, but I don't know how.ģ. At the end of the day, they're just Python files, but I didn't have access to the Python repl nor pdb. Debugging Veusz scripts felt more difficult than it should be. The GUI seemed to be a nice learning tool, but it doesn't generate complicated loops or conditionals for parsing through data well.Ģ. Complicated data parsing seems to render the Veusz GUI obsolete. into a single Veusz (.vsz) script.Īt this point, I tend to default to gnuplot over Veusz because:ġ. Write a gnuplot script to read the csv files to generate the appropriate plots Write a bunch of scripts in Python or MATLAB/Octave to separate the data and output a large number of csv filesĢ. Personally, I've used both gnuplot and Veusz quite a bit. This is a guest post by Jeremy Sanders about the plotting package he’s developed.What workflow does everyone else use for generating a large number of plots? Jeremy is a postdoc working in the X-Ray Group at the Institute of Astronomy in the University of Cambridge in the UK. Veusz (pronounced “views”) is a python-based GUI plotting package that I ( Jeremy Sanders) have developed. As an astronomer, I was dissatisfied with every plotting package I had used. Some were fairly easy to use but old fashioned and/or limited (e.g., qdp, sm, grace, gnuplot). Several were not licensed freely (e.g., sm, idl). Many were difficult to use, requiring libraries of other peoples’ code or a lot of work going through manuals (e.g. I wanted a free, easy to use and powerful package and so I started writing Veusz in 2004. Although I initially found the command line interface to be the most important part of a plotting package, since developing Veusz, I now use its GUI almost exclusively as it’s rather powerful and easy to use. Veusz builds plots out of widgets, each of which has a set of properties and formatting options which can be modified. The standard way to build up the plot is to use the GUI to add widgets to form a tree, reading data from external files. However, most of the functionality can also be accessed using a command interface, which can be used from Python command line console window, an embedding Python module or commands sent to it from stdin. Indeed, Veusz saved documents are simply Python scripts using the same set of commands and are easily modified. Veusz can export several vector and bitmap formats, including PNG, EPS, PDF, SVG and EMF. Veusz has scatter plots, with optional error bars (of several styles), joining-lines (stepped or beziers curves), fills and transparency, and allows for gaps in data. It also supports plotting functions (which can be defined using numpy functions or in external python modules), histograms (which can be computed from data), contour plots (including sub-contour levels and labelled contours), automatic data keys, image plots (with different color maps), color bars, shapes (including arrows) and external image files. It also has a function-fitting widget for doing a chi-squared fit to data. These plotting widgets are placed inside graph widgets. Multiple graph widgets can be placed on a page and in a grid widget which arranges the graphs inside it. Each graph can have as many axes as you like. Veusz can read data in several different formats. ![]() It supports 1D numeric, date and text datasets, and 2D numerical arrays. Its default format is a simple space-delimited text format which can contain a descriptor describing dataset names, columns and data types, or specified in the program. It also supports CSV files (with an optional name for a dataset above each column). Importantly, it can load 1D and 2D data from FITS tables or images. And if that’s not good enough, you can send numpy arrays to Veusz using the embedding interface, or define an import plugin, which is a simple Python script for reading the data. A powerful feature is the ability to create new datasets in the program based on functions of other datasets. These datasets update automatically if the underlying data is reloaded. Veusz is multiplatform as it is written in Python and uses PyQt for user interface and plotting. There are some small parts written in C and C++ to make the program faster. It relies heavily on the Python numpy libraries for handling data. Binaries are available for Linux x86, Mac OS X and Windows, and source allows it to be built for these and other platforms. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |