Gnuplot is an open-source command line tool for plotting 2D/3D graphs based on raw data or mathematical function expressions. It can be used interactively from the console, run in batch mode (via Gnuplot scripts) or be integrated into other tools for plotting (e.g., Octave). Gnuplot can generate different types of graphs, such as line graphs, histogram charts, scatter plots, pie charts, error bar graphs, 2D contour, 3D surface, animated trajectory, etc. It allows fully customizable style (e.g., x/y/z-axis ranges, labels, legend, title, point/line style), and can export graphs in a variety of output formats (e.g., png, jpeg, gif, svg, eps). There are Gnuplot bindings for Perl, Python, C++, Java, Ruby and Haskell, allowing Gnuplot to be used in different programming languages. Gnuplot also supports piping, so that its input or output can be piped from or to other external programs.