class surf3d(x=None, y=None, z=None, c='z', fig=True, ax=None, returnfig=False, colorbar=None, figkwargs=None, axkwargs=None, **kwargs)[source]#

Plot 2D or 3D data as a 3D surface

Typically, x, y, and z, are all 2D arrays of the same size. However, if a single 2D array is provided, then this will be treated as z values and x and y will be inferred on a grid (or they can be provided explicitly, either as vectors or 2D arrays).

  • x (arr) – 1D or 2D array of x coordinates (or z-coordinate data if 2D and z is None)

  • y (arr) – 1D or 2D array of y coordinates (optional)

  • z (arr) – 2D array of z coordinates

  • c (arr) – color data; defaults to match z

  • fig (fig) – an existing figure to draw the plot in (or set to True to create a new figure)

  • ax (axes) – an existing axes to draw the plot in

  • returnfig (bool) – whether to return the figure, or just the axes

  • colorbar (bool) – whether to plot a colorbar (true by default unless color data is provided)

  • figkwargs (dict) – passed to pl.figure()

  • axkwargs (dict) – passed to pl.axes()

  • kwargs (dict) – passed to ax.plot_surface()


# Simple example
data = sc.smooth(pl.rand(30,50))

# Use non-default axes and colors
nx = 20
ny = 50
x = 10*np.arange(nx)
y = np.arange(ny) + 100
z = sc.smooth(pl.randn(ny,nx))
c = z**2
sc.surf3d(x=x, y=y, z=z, c=c, cmap='orangeblue')

New in 3.1.0: updated arguments from “data” to x, y, z, c; removed “plotkwargs” argument; “fig” defaults to True