3D plot
Step 1: Install and Load the rgl Package
Ensure that you have the rgl
package installed and loaded in your R environment.
# Install rgl if not already installedif (!require("rgl")) install.packages("rgl") # Load the rgl packagelibrary(rgl)
Step 2: Prepare a Dataset
For demonstration purposes, create or use a sample 3D dataset (e.g., random
points in 3D space).
# Sample dataset with random 3D pointsset.seed(123)n <- 100x <- rnorm(n)y <- rnorm(n)z <- rnorm(n)colors <- rainbow(n)
Step 3: Create a Basic 3D Plot
Use plot3d() to create a
basic 3D scatter plot.
# Create a 3D scatter plotplot3d(x, y, z, col = colors, size = 5, type = 's', xlab = "X-axis", ylab = "Y-axis", zlab = "Z-axis")
Step 4: Enhance the Plot with
Customization
Add customizations like grid lines, labels, and lighting for better
visualization.
# Add grid linesgrid3d("x")grid3d("y")grid3d("z") # Enhance lightinglight3d(specular = "white")
Step 5: Set Up Rotation Parameters
Define a sequence of angles to rotate the plot and simulate a continuous
rotation.
# Define rotation parametersangles <- seq(0, 360, by = 5) # 5-degree increments
Step 6: Rotate the Plot Programmatically
Use a loop to rotate the plot around a specific axis (e.g., the z-axis).
# Rotate around the z-axisfor (angle in angles) { view3d(theta = angle, phi = 30) # Rotate theta; phi is the vertical angle Sys.sleep(0.1) # Pause for 0.1 seconds for smooth transition}
Step 7: Export the Visualization
Save the interactive 3D plot as an HTML widget or image file for sharing or
further use.
# Save as an interactive HTML filerglwidget() %>% htmlwidgets::saveWidget("3D_plot_rotation.html") # Save as a static image (PNG)rgl.snapshot("3D_plot_rotation.png")
Step 8: Test and Adjust
- Experiment
with different rotation axes (
x,y, orz) by modifyingview3d()parameters. - Adjust the
speed of rotation using
Sys.sleep().
Outcome
By the end of this exercise, you will have an interactive 3D plot that
smoothly rotates, providing a dynamic visualization of the data. You can
integrate this plot with tools like plotly
or embed it into web presentations for a polished output.

No comments:
Post a Comment