The latest five data visualization tools in Linux

Source: Internet
Author: User
Tags mathematical functions

Gnuplot

In this article, we will conduct a survey on many popular Linux data visualization tools and further discuss some of them. For example, does a tool provide a language for numerical calculation? Is this tool interactive or does it provide a batch processing mode for independent operations? Can I use this tool to process images or digital signals? Does this tool provide language binding to support integration with user applications (such as Python, Tcl, and Java programming languages )? The graphic processing capabilities of some tools will also be displayed. Finally, the strengths of each tool will be analyzed to help us determine which tool is best suited for computing tasks or data visualization.

The Open Source tools explored in this article include (the licenses used by each tool are also provided ):

Gnuplot

Gnuplot is a good visualization tool that has existed since 1986. Without a gnuplot graph, it is difficult to read the paper. Although gnuplot is a command line-driven tool, it is also evolving and now supports many non-interactive applications. For example, it can be used as a GNU Octave Drawing Engine.

Gnuplot has good portability and can be used in UNIX®, Microsoft®Windows®, Mac OS®X and many other platforms. It supports a wide range of output formats from postscript to recent PNG.

Gnuplot can be operated in batch mode. It provides a command script to generate a graph and runs it in non-interactive mode, this allows us to try its features to understand the effects of their plotting.

There is a standard Math Library corresponding to the UNIX Math Library in gnuplot that can be used. Function parameters support integer, real, and complex types. You can set the math library to radians or degrees (the default is radians ).

To plot, gnuplot can use the plot command to generate a 2-D graph, or use the splot command to generate a 3-D graph (as a 2-D projection ). Using the plot command, gnuplot can be operated in the Cartesian two-dimensional coordinate system. The splot command uses the Cartesian coordinate system by default, but it also supports spherical or cylindrical coordinate systems. You can also draw contour lines in the graph (as shown in figure 1 below ). There is a new style of drawing pm3d that supports drawing 3-D and 4D data mapped using the color palette as map or surface map.

The following is a simple gnuplot example, which provides a 3-D image with contour lines and hidden line elimination. Listing 1 shows the gnuplot command used, and Figure 1 shows the generated graphic result.

List 1. Simple gnuplot function Diagram

Listing 1 fully shows how simple the gnuplot command set is. The sampling speed and drawing density are determined by samples and isosamples, and the title is provided by the title parameter for the image. At the same time, basic contour lines and hidden line Elimination features are also enabled. The final plot is created using the splot command using functions in the math library. Result 1 is displayed.

Figure 1. A simple plot of gnuplot

In addition to creating function diagrams, gnuplot can also draw graphs contained in files. Consider the x/y Data pair shown in Listing 2 (a short version of this file ). The data pairs in this file represent the x and y axes of a two-dimensional space.

Listing 2. gnuplot sample data file (data. dat)

If you want to plot the data in a two-dimensional space and connect each data point with a line, you can use the gnuplot script in listing 3.

Listing 3. Gnuplot script used to plot the data in Listing 2

Result 2 is displayed. Note that gnuplot automatically provides the axis scale, but you can control it if you need to mark the position of the image.

Figure 2. Simple plotting using data files in gnuplot

Gnuplot is a good visualization tool and is well known as part of many GNU/Linux releases. However, if you want to perform basic data visualization and numerical computing, GNU Ave ave may be the tool we want to find.

GNU Ave ave


GNU Ave ave

GNU Ave ave is a high-level language designed for numerical calculation. It is a strong competitive product of Matlab commercial software produced by MathWorks. In addition to the simple command set provided by gnuplot, Ave ave also provides a rich language for mathematical programming. We can even use C or C ++ to write our own applications and then interact with Ave ave.

Octave was originally written in 1992 as an auxiliary software for chemical reactor design textbooks. The authors hope to help students solve the design problems of the reactors without debugging the Fortran program. The results show a very useful language and provide an interactive environment for solving numerical problems.

Ave ave can be operated in a script mode without interaction, or through C and C ++ language binding. Ave ave itself has a very rich language that looks very similar to C and has a large mathematical library, it includes some special functions used in signal and image processing, audio processing, and control theory.

Because Ave ave uses gnuplot as its backend implementation, you can use Octave to draw everything that can be drawn using gnuplot. Ave ave does have a richer language for computing. It has many obvious advantages, but it still has some limitations on gnuplot.

In the example (SimpleExamples) provided on the Octave-Forge Web site below, a Lorentz Strange Attractor is drawn. Listing 4 shows the Interactive dialog box used by Ave ave on Cygwin Windows. This example shows how to use lsode, a common differential equation calculator.

Listing 4. Use Ave ave to present Lorentz Strange Attractor

Figure 3 shows the output result of the Ave ave code in Listing 4.

Figure 3. Lorentz plot drawn using Ave ave

GNU Ave ave (consistent with gnuplot) can use the multiplot feature to present multiple images on a page. With this feature, you can define the number of images to be created, and then use the subwindow command to customize specific images. After defining the child window, you can generate your own graph normally, and then jump to the next child window (as shown in listing 5 ).

Listing 5. generate multiple images in Ave ave

The generated multi-chart page is shown in Figure 4. This is a good feature for comparing and comparing related images.

Figure 4. Use GNU Ave ave to draw multiple Diagrams

We can think that Ave ave is an advanced language that uses gnuplot as the background implementation for visualization. It provides a rich mathematical library and is a free replacement product for Matlab. It can be easily extended using user-developed packages for voice processing, optimization, and symbol computing. Ave ave is available in some releases of GNU/Linux, such as Debian. It can also be used on Windows and Mac OS X that uses Cygwin.

3 Scilab


Scilab

Scilab is similar to GNU Ave ave in enabling numerical computation and visualization. Scilab is an interpreter and advanced language widely used in engineering and scientific applications in the world.

Scilab was born in 1994 and was designed by France's INRIA (effecut national de recherche en informatique et en automatique) and ENPC (école Nationale des Ponts et Chauss es. Scilab began to be maintained by Scilab Consortium since January 1, 2003.

Scilab contains a large mathematical function library that can be expanded using programs written in advanced languages such as C and Fortran. It also provides the ability to overload data types and operations. It includes an integrated high-level language, but this language is slightly different from the C language.

Scilab has many toolkit that provide 2-D and 3-D graphic animation, optimization, statistics, icons and networks, signal processing, hybrid dynamic system simulation and simulation, and many other functions contributed by the community.

Scilab can be used in most UNIX systems and also in newer Windows operating systems. Like GNU Ave ave, Scilab also provides good documentation. As it is a European project, you can find many documents and articles written in other languages except English.

After Scilab is started, a window is displayed to allow us to interact with it (5 ).

Figure 5. Interaction with Scilab

In this example, a vector (t) is created, and its value ranges from 0 to 2 Pi (step size: 0.2 ). Then a 3-D graph is generated (using z = f (x, y), or a surface at the xi, yi point ). Figure 6 shows the generated graph.

Figure 6. Scilab diagram generated by the command in Figure 5

Scilab contains many libraries and functions that can draw graphics with minimal complexity. The following is an example of generating a simple 3D bar chart:

--> Hist3d (5 * (rand (5, 5 ));

First, rand (5, 5) constructs a matrix of 5 to 5, which contains some random values (the maximum value is 5 ). This matrix is passed to the hist3d function. The column Chart 7 is displayed.

Figure 7. Generate a random three-dimensional bar chart

Scilab and Ave ave are very similar. They all have a great foundation for community participation. Scilab is written in Fortran 77, while Ave ave is written in C ++. Octave uses gnuplot for visualization, while Scilab provides its own library. If you are very familiar with Matlab, Ave ave is a good choice, because it strives to achieve compatibility with Matlab. Scilab contains many mathematical functions, so it is very suitable for signal processing. If you are not sure which tool you want to use, try it all. They are good tools and can be used to complete different tasks.

4 MayaVi


MayaVi

MayaVi stands for magicians in Sanskrit. It is a data visualization tool that is bound to Python with a powerful Visualization Toolkit (VTK) for graphical display. MayaVi also provides a graphical user interface (GUI) developed using the Tkinter module ). Tkinter is a Tk interface, which is usually used with Tcl.

MayaVi was initially developed for Computational Fluid Dynamics (CFD) as a visualization tool. When people realized its utility in other fields, it was re-designed as a universal scientific data visualization tool.

The magic behind MayaVi comes from VTK. VTK is an open source system for data visualization and image processing. It is widely used in the scientific community. VTK encapsulates many functions through the scripting interface provided by Tcl/Tk, Java programming language, and Python plus the C ++ library. VTK is portable in many operating systems, including UNIX, Windows, and mac OS X.

The MayaVi shell around VTK can be imported from other Python programs as a Python module, and scripts can be written through the Python interpreter. The tkinter GUI provided by MayaVi allows you to configure and apply filters and render some lighting effects based on visualization.

Figure 8 shows an example of using MayaVi for visualization on the Windows platform.

Figure 8. 3-D visualization using MayaVi/VTK (cardiac CT scan)

MayaVi is an interesting example of extending VTK In the Python scripting language.

5 Maxima


Maxima

Maxima is a symbolic and numerical computing program, which is the blood of Ave ave and Scilab. The initial development team of Maxima started its MIT (masheng Polytechnic Institute) in 1870s and is still under maintenance. The initial version (a computer algebra system) was named DOE Macsyma, which opened the path to more well-known applications (such as Mathematica) developed later.

Maxima provides a set of expected feature sets (such as calculus, analytical linear systems, and nonlinear equality sets) and symbolic computing capabilities. In Maxima, you can also find some clues about Lisp (from functions such as reference, map, and apply ). Maxima is written in Lisp and can execute Lisp code in Maxima sessions.

Maxima has a good online help system, which is based on hypertext. For example, if you want to know how a specific Maxima function works, you can simply enter example (desolve) and then it provides a wide variety of examples.

Maxima also has some interesting features, such as rules and patterns. These rules and patterns are used by programs that simplify expressions. Rules can be used for exchange and non-exchange algebra.

Maxima is very similar to Ave ave and Scilab: The interpreter can be used to interact with users, and the results are provided directly in the same window or displayed in another window. In Figure 9, you are requested to draw a simple 3-D image.

Figure 9. Interaction with Maxima


The generated graph 10 is shown.

Figure 10. Maxima image generated by the command in Figure 9

Outlook

This article describes several open-source GNU/Linux visualization tools. Other useful tools include Gri, PGPLOT, SciGraphica, plotutils, NCAR Graphics, and ImLib3D. These are open source code, which means you can see how they work. If you want to, you can also modify them. In addition, if you are looking for a good graphic simulation environment, check the Open Dynamics Engine (ODE) used with OpenGL ).

The specific requirements determine which tool is the most suitable for use. If you want to use a powerful visualization system with many visual algorithms, MayaVi is the tool you are looking. GNU Ave ave and Scilab are ideal for visualized numeric computing. If you need the symbolic computing capability, Maxima is a good choice. Finally (but not unimportant), if you only need some basic drawing functions, gnuplot can well meet this requirement.


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.