Plotting 3D fields - 3D Graphics

Skip to content
Back to top
View this page
Edit this page

# Plotting 3D fields

sage.plot.plot3d.plot_field3d.plot_vector_field3d(functions, xrange, yrange, zrange, plot_points=5, colors='jet', center_arrows=False, **kwds)

  Plot a 3d vector field.

  INPUT:

  - `functions` – list of three functions, representing the x-, y-, and z-coordinates of a vector

  - `xrange`, `yrange`, and `zrange` – three tuples of the form (var, start, stop), giving the variables and ranges for each axis

  - `plot_points` – (default: 5) either a number or list of three numbers, specifying how many points to plot for each axis

  - `colors` – (default: `'jet'`) a color, list of colors (which are interpolated between), or matplotlib colormap name, giving the coloring of the arrows. If a list of colors or a colormap is given, coloring is done as a function of length of the vector

  - `center_arrows` – (default: `False`) if `True`, draw the arrows centered on the points; otherwise, draw the arrows with the tail at the point

  - any other keywords are passed on to the `plot()` command for each arrow

  EXAMPLES:

  A 3d vector field:

  Sage

      sage: x,y,z = var('x y z')
      sage: plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ....:                     (x,0,pi), (y,0,pi), (z,0,pi))
      Graphics3d Object

  Python

      >>> from sage.all import *
      >>> x,y,z = var('x y z')
      >>> plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ...                     (x,Integer(0),pi), (y,Integer(0),pi), (z,Integer(0),pi))
      Graphics3d Object

  same example with only a list of colors:

  Sage

      sage: plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ....:                     (x,0,pi), (y,0,pi), (z,0,pi),
      ....:                     colors=['red','green','blue'])
      Graphics3d Object

  [Python]

      >>> from sage.all import *
      >>> plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ...                     (x,Integer(0),pi), (y,Integer(0),pi), (z,Integer(0),pi),
      ...                     colors=['red','green','blue'])
      Graphics3d Object

  same example with only one color:

  Sage

      sage: plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ....:                     (x,0,pi), (y,0,pi), (z,0,pi), colors='red')
      Graphics3d Object

  Python

      >>> from sage.all import *
      >>> plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ...                     (x,Integer(0),pi), (y,Integer(0),pi), (z,Integer(0),pi), colors='red')
      Graphics3d Object

  same example with the same plot points for the three axes:

  Sage

      sage: plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ....:                     (x,0,pi), (y,0,pi), (z,0,pi), plot_points=4)
      Graphics3d Object

  [Python]

      >>> from sage.all import *
      >>> plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ...                     (x,Integer(0),pi), (y,Integer(0),pi), (z,Integer(0),pi), plot_points=Integer(4))
      Graphics3d Object

  same example with different number of plot points for each axis:

  Sage

      sage: plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ....:                     (x,0,pi), (y,0,pi), (z,0,pi), plot_points=[3,5,7])
      Graphics3d Object

  Python

      >>> from sage.all import *
      >>> plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ...                     (x,Integer(0),pi), (y,Integer(0),pi), (z,Integer(0),pi), plot_points=[Integer(3),Integer(5),Integer(7)])
      Graphics3d Object

  same example with the arrows centered on the points:

  Sage

      sage: plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ....:                     (x,0,pi), (y,0,pi), (z,0,pi), center_arrows=True)
      Graphics3d Object

  [Python]

      >>> from sage.all import *
      >>> plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
      ...                     (x,Integer(0),pi), (y,Integer(0),pi), (z,Integer(0),pi), center_arrows=True)
      Graphics3d Object