Finite lists of 2D points

Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.


plot::PointList2d(pts, <a = amin .. amax>, options)
plot::PointList2d(M2d, <a = amin .. amax>, options)


plot::PointList2d holds lists of points in 2D.

This is a container for a large finite number of points. It lets you avoid constructing large numbers of objects of type plot::Point2d for two reasons. First, the point types have non-negligible overhead and constructing and plotting a large number of them (say, five thousand) takes more time than plotting the same number of points in a single container object. Second, having five thousand points in the object browser takes a significant amount of memory and is not as lucid as having a single point list.

The attribute Points2d is displayed in the inspector in the user interface only for short lists.

plot::PointList2d internally uses lists for storing the points. It is therefore not recommended to add a large number of points one-by-one. See Example 1 for a better method of collecting data.

If you specify the color of one point, you must specify the colors of all other points in the list. See Example 2.


AttributePurposeDefault Value
AffectViewingBoxinfluence of objects on the ViewingBox of a sceneTRUE
AntiAliasedantialiased lines and points?TRUE
Colorthe main colorRGB::MidnightBlue
Framesthe number of frames in an animation50
Legendmakes a legend entry 
LegendTextshort explanatory text for legend 
LegendEntryadd this object to the legend?FALSE
Namethe name of a plot object (for browser and legend) 
ParameterEndend value of the animation parameter 
ParameterNamename of the animation parameter 
ParameterBegininitial value of the animation parameter 
ParameterRangerange of the animation parameter 
Points2dlist of 2D points 
PointSizethe size of points1.5
PointColorthe color of pointsRGB::MidnightBlue
PointStylethe presentation style of pointsFilledCircles
TimeEndend time of the animation10.0
TimeBeginstart time of the animation0.0
TimeRangethe real time span of an animation0.0 .. 10.0
Titleobject title 
TitleFontfont of object titles[" sans-serif ", 11]
TitlePositionposition of object titles 
TitleAlignmenthorizontal alignment of titles w.r.t. their coordinatesCenter
TitlePositionXposition of object titles, x component 
TitlePositionYposition of object titles, y component 
VisibleAfterobject visible after this time value 
VisibleBeforeobject visible until this time value 
VisibleFromToobject visible during this time range 
VisibleAfterEndobject visible after its animation time ended?TRUE
VisibleBeforeBeginobject visible before its animation time starts?TRUE


Example 1

The following iteration leads to the so-called Hénon attractor (from chaos theory):

c1 := 1.4:
c2 := 0.3:
henon_iter := (x, y) -> [c1*x^2+y-1, c2*x]:

Start at (0, 0), let hundred iteration cycles pass by (to only plot the attractor), and then collect the next three thousand points:

[x, y] := [0, 0]:
for i from 1 to 100 do
  [x, y] := henon_iter(x, y);
data := {}:
for i from 1 to 3000 do
  [x, y] := henon_iter(x, y);
  data := data union {[x, y]};

In this example, you collect the data in a set, because adding elements to a set is a fast operation, unlike changing the length of a list, and you don't have to care for the order in which points were reached. To plot the data, convert it to a list first:

data := coerce(data, DOM_LIST):

Example 2

plot::PointList2d lets you specify the colors of the points. For example, the following list contains two points. When you plot this list, the first point appears in red, and the second point appears in green:

Coords := [[3, 4, RGB::Red], [5, 5, RGB::Green]];
plotCoords := plot::PointList2d(Coords):
plot(plotCoords,  PointSize=5)

If you specify the color of one point, you must also specify the colors of all other points in the list:

Coords := [[3, 4, RGB::Red], [5, 5]];
plotCoords := plot::PointList2d(Coords)

Error: The attribute 'Points2d' in the 'PointList2d' object must be a list of lists of two expressions and an optional color value. [plot]

Example 3

(Feigenbaum's period doubling route to chaos)

Consider the iteration xn + 1 = fp(xn) where is the "logistic map" with a parameter p. The iteration map fp maps the interval [0, 1] to itself for 0 ≤ p ≤ 4. For small values of p, the sequence (xn) has a finite number of accumulation points that are visited cyclically. Increasing p, the accumulation points split into 2 separate accumulation points for certain critical values of p ("period doubling"). For , there are infinitely many accumulation points and the sequence (xn) behaves chaotically.

Visualize the accumulation points as functions of p ("Feigenbaum diagram").

For P closely spaced values of p, construct the sequence (xn) starting with x0 = 0.5. Ignore the first N values, expecting that the next M values cycle over the accumulation points. These points are added to a list plotdata that is finally fed into a PointList2d for plotting:

f:= (p, x) -> p*x*(1-x):

 P:= 500: // number of steps in p direction
N:= 200: // transitional steps before we are close to the cycle
M:= 300: // maximal number of points on the cycle

 pmin:= 2.8: // Consider p between
pmax:= 4.0: // pmin and pmax
plotdata:= [ ]:
for p in [pmin + i*(pmax - pmin)/P $ i = 0..P] do
    // First, do N iterations to drive the 
    // point x towards the limit cycle 
    x:= 0.5:
    for i from 1 to N do
      x:= f(p, x):

     // consider the next M iterates and use them as plot data:
    xSequence:= table():
    xSequence[1]:= x;
    for i from 2 to M do
        x:= f(p, x):
        if abs(x - xSequence[1]) < 10^(-5) then
           // We are back at the beginning of the cycle;
           // the points will repeat. Go to the next p.
           xSequence[i]:= x;
    plotdata:= plotdata . [[p, rhs(x)] $ x in xSequence];

                       PointColor = RGB::Black,
                       PointSize = 0.5*unit::mm)):

delete f, P, N, M, pmin, pmax, plotdata, x, xSequence, i;

Example 4

Create the following number spiral by plotting only prime numbers. This plot shows that primes cluster along particular curves called prime-generating curves.

                $ n in [ithprime(j) $ j = 1..2345]],
                                      PointSize = 1
      Axes = None, Scaling = Constrained,
      Height = 100, Width = 100)



A list of points. A point must not be of type plot::Point2d. Each point must be a list of two real-valued expressions (the coordinates) and an optional RGB color. The lists specifying the points and the colors must all have the same length.

pts is equivalent to the attributes Points2d.


An array or a matrix with two columns. Each row provides the coordinates of one point.

M2d is equivalent to the attribute Points2d.


Animation parameter, specified as a = amin..amax, where amin is the initial parameter value, and amax is the final parameter value.

Was this topic helpful?