pch3d {rgl} | R Documentation |
Plot symbols similar to base graphics
Description
This function plots symbols similarly to
what the base graphics function points
does when pch
is specified.
Usage
pch3d(x, y = NULL, z = NULL, pch = 1,
bg = material3d("color")[1], cex = 1, radius,
color = "black", lit = FALSE, ...)
Arguments
x , y , z |
The locations at which to plot in a form
suitable for use in |
pch |
A vector of integers or single characters describing the symbols to plot. |
bg |
The fill color(s) to use for |
cex |
A relative size of the symbol to plot. |
radius |
An absolute size of the symbol to plot in user coordinates. |
color |
The color(s) to use for symbols. |
lit |
Whether the object responds to lighting or just shows the displayed color directly. |
... |
Other material properties. |
Details
The list of symbols encoded by numerical
pch
values is given in the points
help page.
Value
A vector of object id values is returned invisibly. Separate objects will be drawn
for each different combination of pch
value from
0 to 25, color
and bg
, and another holding all the character
symbols.
Note
This function is not a perfect match to how the points
function works due
to limitations in RGL and OpenGL. In
particular:
Symbols with numbers from 1 to 25 are drawn
as 3D sprites (see sprites3d
),
so they will resize as the window is zoomed.
Letters and numbers from 32 to 255 (which are
mapped to letters) are drawn using text3d
,
so they maintain a fixed size.
A calculation somewhat like the one in plot3d
that sets the size
of spheres is used to choose the size of
sprites based on cex
and the
current scaling. This will likely need manual
tweaking. Use the radius
argument
for a fixed size.
No special handling is done for the case of
pch = "."
. Use points3d
for
small dots.
As of rgl version 0.100.10, background and foreground colors can vary from symbol to symbol.
Author(s)
Duncan Murdoch
See Also
points3d
, text3d
and
sprites3d
for other ways to label points,
points
for the base graphics symbol
definitions.
Examples
open3d()
i <- 0:25; x <- i %% 5; y <- rep(0, 26); z <- i %/% 5
pch3d(x, y, z, pch = i, bg = "gray", color = rainbow(26))
text3d(x, y, z + 0.3, i)
pch3d(x + 5, y, z, pch = i+65)
text3d(x + 5, y, z + 0.3, i+65)