#### Overview of this book

gnuplot is the world's finest technical plotting software, used by scientists, engineers, and others for many years. It is in constant development and runs on practically every operating system, and can produce output in almost any format. The quality of its 3d plots is unmatched and its ability to be incorporated into computer programs and document preparation systems is excellent. gnuplot Cookbook ñ it will help you master gnuplot. Start using gnuplot immediately to solve your problems in data analysis and presentation. Quickly find a visual example of the graph you want to make and see a complete, working script for producing it. Learn how to use the new features in gnuplot 4.4. Find clearly explained, working examples of using gnuplot with LaTeX and with your own computer programming language. You will master all the ins and outs of gnuplot through gnuplot Cookbook. You will learn to plot basic 2d to complex 3d plots, annotate from simple labels to equations, integrate from simple scripts to full documents and computer progams. You will be taught to annotate graphs with equations and symbols that match the style of the rest of your text, thus creating a seamless, professional document. You will be guided to create a web page with an interactive graph, and add graphical output to your simulation or numerical analysis program. Start using all of gnuplot's simple to complex features to suit your needs, without studying its 200 page manual through this Cookbook.
gnuplot Cookbook
Credits
www.PacktPub.com
Preface
Free Chapter
Plotting Curves, Boxes, Points, and more
Annotating with Labels and Legends
Applying Colors and Styles
Combining Multiple Plots
Programming gnuplot and Dealing with Data
The Third Dimension
Using and Making Graphical User Interfaces
Surveying Special Topics
Finding Help and Information
Index

## Making a surface plot

A surface plot represents the dependent quantity z, which depends on the two independent variables x and y, as a surface whose height indicates the value of z.

The previous figure is a perspective drawing of a surface representing the Bessel function `J0(r)`, where `r` is the distance from (x=0, y=0). The height of the surface shows the value of J0, given on the vertical axis (unlabeled in this figure, but usually called `z`). The other two (unlabeled) axes defining the plane above which the surface is drawn are the x and y axes.

### How to do it…

The following code listing is the script that coaxed gnuplot into making the previous figure:

```set isosamples 40
unset key
set title "J_0(r^2)"
set xrange [-4:4]
set yrange [-4:4]
set ztics 1
splot besj0(x**2+y**2)
set view 29,53 #Done implicitly by mousing.
set term pngcairo mono enhanced
set out 'bessel.png'
replot```

### How it works…

There are several new commands in this recipe. The `set isosamples` command sets the isoline density. This is...