dmwarn dmwarn - 3 days ago 5
R Question

scatter3D cex.clab and rgl

I am struggling with how to increase the font size of the color key title in an rgl device that shows a plot created using scatter3D() from the plot3D package. I have included some code below demonstrating that the cex.clab option influences the font size of the color key title in a graphics device but not an rgl device. I would appreciate any suggestions on how to increase the font size of the color key title in the rgl device too.

Thanks,
Dave

library(plot3D); library(plot3Drgl)
with(quakes,
scatter3D(x=long, y=lat, z=-depth, colvar=mag, pch=16, cex=1.5,
xlab="longitude", ylab="latitude", zlab="depth, km",
clab=c("Richter", "Magnitude"), main="Earthquakes off Fiji",
ticktype="detailed", theta=10, d=2,
colkey=list(length=0.5, width=0.5, cex.clab=1))
)
plotrgl(lighting = TRUE, smooth = TRUE, cex=2)

with(quakes,
scatter3D(x=long, y=lat, z=-depth, colvar=mag, pch=16, cex=1.5,
xlab="longitude", ylab="latitude", zlab="depth, km",
clab=c("Richter", "Magnitude"), main="Earthquakes off Fiji",
ticktype="detailed", theta=10, d=2,
colkey=list(length=0.5, width=0.5, cex.clab=2))
)
plotrgl(lighting = TRUE, smooth = TRUE, cex=2)

Answer

As far as I see, plotrgl() can't treat some parameters correctly. I think it would be better to make a graph without the labels and add them using rgl functions, such as title3d() and/or text3d().

Here is my example;

library(plot3D); library(rgl); library(plot3Drgl)

  ## example data (on my env, plotrgl(some_graph) crushes Rstudio, so I used volcano)
volc <- reshape2::melt(volcano)  

with(volc, scatter3D(x = Var1, y = Var2, z = value, ticktype="detailed", pch=16, 
                     xlab="longitude", ylab="latitude", zlab="depth, km", main=""))
plotrgl(lighting = TRUE, smooth = TRUE, cex=2)

  ## When graph is made, the left panel is focused
title3d(main = "Earthquakes off Fiji", line=4, cex=2)

  ## next3d() changes the focus into the right panel
next3d(clear = F)
title3d("Richter", cex = 2, line = 2)
title3d("Magnitude", cex = 2, line = 0.8)
  # text3d(0, 1, 1.2, "Richter", cex=2)    # almost same
  # text3d(0, 1, 1.1, "Magnitude", cex=2)

next3d(clear = F) # if you want to refocus the left panel

enter image description here

Comments