
13.3: Visualizing Two-Dimensional Scalar and Vector Field

$$\newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}}$$

Plotting scalar and vector ﬁelds in Python is straightforward, as long as the space is two-dimensional.  Here is an example of how to plot a 3-D surface plot:

The scalar ﬁeld $$f(x,y) = \sin{\sqrt{x^2 + y^2}}$$ is given on the right hand side of the zvalues part. The result is shown in Fig. 13.6.

Figure 13.6: Scalar field visualized as a 3-D surface using code 13.1.

And here is how to draw a contour plot of the same scalar ﬁeld:

The clabel command is used here to add labels to the contours. The result is shown in Fig. 13.7.

Figure 13.7:Scalar ﬁeld visualized as a contour plot using Code 13.2.

If you want more color, you can use imshow, which we already used for CA:

The result is shown in Fig. 13.8. Colorful!

Figure 13.8: Scalar ﬁeld visualized as a color image using Code 13.3.

Finally, a two-dimensional vector ﬁeld can be visualized using the streamplot function that we used in Section 7.2. Here is an example of the visualization of a vector ﬁeld v = (vx,vy) = (2x,y−x), with the result shown in Fig. 13.9:

Exercise 13.7

Plot the scalar ﬁeld $$f(x,y) = \sin{(xy)}$$ for $$−4 ≤ x,y ≤ 4$$ using Python.

Exercise 13.8

Plot the gradient ﬁeld of f$$(x,y) = \sin{(xy)}$$ for $$−4 ≤ x,y ≤ 4$$ using Python.

Exercise 13.9

Plot the Laplacian of f$$\x,y) = \sin{(xy)}$$ for $$−4 ≤ x,y ≤ 4$$ using Python. Compare the result with the outputs of the exercises above.