如何解决rgl包保存PDF/SVG矢量图形时3D点不可见的问题?
3D椭球与点在矢量图输出中的显示问题
执行以下示例代码可生成正常的PNG图像,但生成的PDF和SVG图像存在异常:3D点不可见,推测这是3D点与椭球在矢量图形中的兼容性问题导致的,点的显示会破坏椭球表面。
示例代码
if (requireNamespace("MASS", quietly = TRUE)) { Sigma <- matrix(c(10, 3, 0, 3, 2, 0, 0, 0, 1), 3, 3) Mean <- 1:3 x <- MASS::mvrnorm(10, Mean, Sigma) library(rgl) open3d() plot3d(x, type="s", lit=FALSE, box = FALSE) ellipse <- ellipse3d(Sigma, centre = Mean) plot3d(ellipse , col = "darkcyan", alpha = 0.3, add = TRUE) shade3d(ellipse, col = "Gray90", alpha = 0.3, lit = FALSE) rgl.snapshot(filename = '3dellipse.png', fmt = 'png') rgl.postscript('3dellipse.pdf', fmt = 'pdf') # alternative way to svg file require(x3ptools) x3p_snapshot("3dellipse_x3p.svg") }
将代码中绘制椭球的语句修改为:
plot3d(ellipse, col = "darkcyan", alpha = 0.3, add = TRUE, type="shade")
修改后,生成的PDF和SVG图像中椭球显示正常,但内部的3D点仍不可见。
效果对比
- 生成的PNG图像:

- 生成的PDF/SVG图像(异常状态):

内容的提问来源于stack exchange,提问作者tomek
相关产品推荐
相关产品推荐

