An arbitrary number of graphical primitives in 2D or 3D can be collected in groups of type plot::Group2d or plot::Group3d, respectively. This is useful for inheriting attribute values to all elements in a group.
In the following example, we visualize random generators with different distributions by using them to position random points:
r1 := stats::normalRandom(0, 1): group1 := plot::Group2d(plot::Point2d(r1(), r1()) $ i = 1..200): r2 := stats::uniformRandom(-3, 3): group2 := plot::Group2d(plot::Point2d(r2(), r2()) $ i = 1..500): plot(group1, group2, Axes = Frame):
We cannot distinguish between the two kinds of points. Due to the grouping, it is very easy to change their color and size by setting the appropriate attributes in the groups. Now, the two kinds of points can be distinguished easily:
group1::PointColor := RGB::Red: group1::PointSize := 1.5*unit::mm: group2::PointColor := RGB::Blue: group2::PointSize := 1.3*unit::mm: plot(group1, group2, Axes = Frame):