generates a plot of the values of expr when i runs from imin to imax and j runs from jmin to jmax.


uses steps di and dj.


uses successive i values i1, i2, and j values j1, j2, .


plots the values of all the expri.

Details and Options

  • DiscretePlot3D uses the standard Wolfram Language iterator specification.
  • DiscretePlot3D plots the variable i along the axis and j along the axis.
  • DiscretePlot3D treats the variables i and j as local, effectively using Block.
  • DiscretePlot3D has attribute HoldAll, and evaluates expr only after assigning specific numerical values to i and j.
  • In some cases, it may be more efficient to use Evaluate to evaluate expr symbolically before specific numerical values are assigned to i and j.
  • The precision used in evaluating expr is the minimum precision used in the iterators.
  • The form w[expr] provides a wrapper w to be applied to the resulting graphics primitives.
  • The following wrappers can be used:
  • Annotation[expr,label]provide an annotation
    Button[expr,action]define an action to execute when the element is clicked
    Callout[expr,label]label the element with a callout
    Callout[expr,label,pos]place the callout at relative position pos
    EventHandler[expr,]define a general event handler for the element
    Hyperlink[expr,uri]make the element act as a hyperlink
    Labeled[expr,label]make the data a hyperlink
    Labeled[expr,label,pos]place the label at relative position pos
    Legended[expr,label]identify the element in a legend
    PopupWindow[expr,cont]attach a popup window to the element
    StatusArea[expr,label]display in the status area when the element is moused over
    Style[expr,opts]show the element using the specified styles
    Tooltip[expr,label]attach an arbitrary tooltip to the element
  • Callout and Labeled can use the following positions pos:
  • Automaticautomatically placed labels
    Above, Below, Before, Afterpositions around the data
    xnear the data at a position x
    {s,Above},{s,Below},relative position at position s along the data
    {pos,epos}epos in label placed at relative position pos of the data
  • Labels that depend on {i,j} will be applied for each plot element, while labels that are independent of {i,j} will only occur once.
  • DiscretePlot3D has the same options as Graphics3D, with the following additions and changes:
  • AxesTruewhether to draw axes
    BoxRatios{1,1,0.4}bounding 3D box ratios
    ClippingStyleAutomatichow to draw clipped parts of surfaces
    ColorFunctionAutomatichow to determine the color of surfaces
    ColorFunctionScalingTruewhether to scale arguments to ColorFunction
    EvaluationMonitorNoneexpression to evaluate at every function evaluation
    ExtentElementFunctionAutomatichow to generate raw graphics for extent fills
    ExtentMarkersNonemarkers to use for extent boundaries
    ExtentSizeAutomaticwidth and depth to extend from plot point
    FillingAutomaticfilling under each surface
    FillingStyleOpacity[0.5]style to use for filling
    JoinedFalsewhether to join
    LabelingFunctionAutomatichow to label points
    LabelingSizeAutomaticmaximum size of callouts and labels
    MethodAutomaticthe methods to use
    PerformanceGoal$PerformanceGoalaspects of performance to try to optimize
    PlotLegendsNonelegends for sequences
    PlotMarkersNonemarkers to use for plot points
    PlotRange{Full,Full,Automatic}the range of or other values to include
    PlotStyleAutomaticgraphics directives for the style for each surface
    PlotTheme$PlotThemeoverall theme for the plot
    RegionFunction(True&)how to determine whether a point should be included
    ScalingFunctionsNonehow to scale individual coordinates
    WorkingPrecisionMachinePrecisionthe precision used in internal computations
  • The arguments supplied to ColorFunction are , , .
  • With the setting ExtentSize->{{sxl,sxr},{syl,syr}} a horizontal plane is drawn around each plot point extending sxl to the left and sxr to the right along the axis and syl to the left and syr to the right along the axis. With ExtentMarkers->{{mxl,mxr},{myl,myr}}, the markers mxl and mxr will be used as left and right markers along the axis and myl and myr as left and right markers along the axis.
  • The arguments supplied to ExtentElementFunction are the element region {{xmin,xmax},{ymin,ymax},{zmin,zmax}} and the sample point {xi,yi,zi}.
  • With the setting ExtentSize->None, xmin is equal to xmax and ymin is equal to ymax. With the setting Filling->None, zmin is equal to zmax.
  • Possible settings for PlotMarkers include:
  • Noneomit markers when drawing surfaces
    "Point"use 2D points as markers
    "Sphere"use 3D spheres as markers
    {"Point",s},{"Sphere",s}specify the size s of the markers
    {spec1,spec2,}use specification speci for expression expri
  • The marker size s can be a symbolic value such as Tiny, Small, Medium and Large or a scaled fraction of the width of the graphic.
  • Possible settings for ScalingFunctions include:
  • szscale the z axis
    {sx,sy}scale x and y axes
    {sx,sy,sz}scale x, y and z axes
  • Each scaling function si is either a string "scale" or {g,g-1}, where g-1 is the inverse of g.


open allclose all

Basic Examples  (3)

Plot a bivariate sequence:

Associate a region with the points:

Plot several sequences:

Scope  (12)

Data and Layouts  (4)

Plot multiple datasets:

Use wrappers on individual data, datasets, or collections of datasets:

Wrappers can be nested:

Override the default tooltips:

Use PopupWindow to provide additional drilldown information:

Button can be used to trigger any action:

Use ScalingFunctions to scale the axes:

Labeling and Legending  (3)

Label individual points:

Use tooltips instead:

Specify label names with LabelingFunction:

Styling and Appearance  (5)

Use ExtentSize to associate a region with a point:

Use an explicit list of styles for the plots:

Use any gradient color schemes from ColorData:

Style can be used to override styles:

Show plot markers:

Show extent region boundaries:

Use a theme with dark background in a high-contrast color scheme:

Options  (70)

ColorFunction  (6)

Color the points by scaled , , or value:

Color the surface by scaled , , or value:

Color the regions by scaled , , or value:

Use a named color gradient:

ColorFunction has higher priority than PlotStyle:

Use black when two numbers are relatively prime:

ColorFunctionScaling  (1)

Color by absolute height:

EvaluationMonitor  (1)

Gather the plotted heights:

Show the plot and a histogram of the heights:

ExtentElementFunction  (5)

Get a list of built-in settings for ExtentElementFunction:

For detailed settings, use Palettes Chart Element Schemes:

This ChartElementFunction is appropriate to show the global scale:

Write a custom ExtentElementFunction:

A built-in element function may have options; use Palettes Chart Element Schemes to set them:

ExtentMarkers  (4)

Do not show the extent edges:

Use lines to show the extent edges:

Use varying sized tubes to show the extent edges:

Place tubes along the front and left edges of the extent region:

ExtentSize  (6)

Show heights as points:

Draw full regions around the heights:

With unevenly spaced points:

Use fixed-size regions:

With unevenly spaced points:

Use sizes relative to the distance between points:

With unevenly spaced points:

Use equally sized regions that do not overlap:

With unevenly spaced points:

Control the placement of the region around the points:

Filling  (3)

DiscretePlot3D fills to :

Turn off filling:

Fill to different levels:

FillingStyle  (3)

Fill to the bottom with a variety of styles:

With expanded point regions:

Use different colors above and below the filling level:

Only fill below the filling level:

Joined  (2)

Join the points into a surface:

Combine a surface with extent regions:

LabelingFunction  (4)

Put the labels above the points:

Put them in a tooltip:

Use callouts to label the points:

Label the points with their values:

Label the points with their indices:

LabelingSize  (1)

Specify a maximum size for textual labels:

Use the full label:

PlotLegends  (6)

Use automatic legends:

Specify a list of labels for legends:

Use named legends:

PlotLegends automatically picks up PlotStyle values:

Use Placed to control legend placement:

Use SwatchLegend to change legend appearance:

PlotMarkers  (4)

Change the size of the default plot markers:

Markers are not usually shown when surfaces are used:

Use points with surfaces:

Use spheres for markers:

Vary the size of the spheres:

PlotStyle  (7)

Use different style directives:

By default, different styles are chosen for multiple functions:

Explicitly specify the style for different functions:

PlotStyle applies to points, lines, and surfaces:

PlotStyle can be combined with ColorFunction:

PlotStyle can be combined with FillingStyle:

FillingStyle by default uses the same style as PlotStyle with transparency:

PlotTheme  (4)

Use a theme with simple ticks and grid lines:

Change the color scheme:

Use a theme with dark background in a high-contrast color scheme:

Turn off the ticks:

RegionFunction  (4)

Restrict the region plotted:

Extended regions are treated as the underlying point without additional clipping:

Regions can have several unconnected components:

Define regions using logical combinations of constraints:

ScalingFunctions  (9)

By default, plots have linear scales in each direction:

Use a log scale in the direction:

Use a linear scale in the direction that shows smaller numbers at the front:

Use a reciprocal scale in the direction:

Use different scales in the and directions:

Reverse the axis without changing the axis:

Use a scale defined by a function and its inverse:

Positions in Ticks and FaceGrids are automatically scaled:

PlotRange is automatically scaled:

Applications  (2)

Visualize properties of discrete distributions, such as probability density function:

Cumulative distribution function:

Survival function:

Approximate the volume under a surface using Riemann sums:

Properties & Relations  (4)

Plot3D generates continuous surfaces:

Use ListPointPlot3D to plot lists of values:

Use BarChart3D to show bars for lists of values:

Use DiscretePlot to plot functions of single discrete variables:

Wolfram Research (2010), DiscretePlot3D, Wolfram Language function, https://reference.wolfram.com/language/ref/DiscretePlot3D.html (updated 2019).


Wolfram Research (2010), DiscretePlot3D, Wolfram Language function, https://reference.wolfram.com/language/ref/DiscretePlot3D.html (updated 2019).


Wolfram Language. 2010. "DiscretePlot3D." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/DiscretePlot3D.html.


Wolfram Language. (2010). DiscretePlot3D. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DiscretePlot3D.html


@misc{reference.wolfram_2022_discreteplot3d, author="Wolfram Research", title="{DiscretePlot3D}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/DiscretePlot3D.html}", note=[Accessed: 28-June-2022 ]}


@online{reference.wolfram_2022_discreteplot3d, organization={Wolfram Research}, title={DiscretePlot3D}, year={2019}, url={https://reference.wolfram.com/language/ref/DiscretePlot3D.html}, note=[Accessed: 28-June-2022 ]}