На странице справки ?plot3d
написано: «Обратите внимание, что поскольку rgl в настоящее время не поддерживает отсечение, будут построены все точки, а« xlim »,« ylim »и« zlim »будут использоваться только для увеличения соответствующие диапазоны. " Таким образом, вам нужно ограничить данные на этапе ввода. (И вам нужно будет использовать segments3d
вместо lines3d, если вы хотите только определенные диапазоны, которые находятся внутри построенного объема.)
d2 <- subset(d, d[,1]>0 & d[,1] <20 & d[,2]>0 & d[,2] <20 & d[,3]>0 & d[,3]<10000 ])
plot3d(
d2[, 1:3], # You can probably use something more meaningful,
xlim=c(0,20),
ylim=c(0,20),
zlim=c(0,10000),
xlab='Frequency',
ylab='Size',
zlab='Number of subgraphs',
box=F,
type='s',
size=0.5,
col=d[,1]
)
(я заметил, что когда диапазон был c (0,10000), размер точек был почти невидим. И дальнейшие эксперименты показывают, что большое несоответствие в диапазонах вызовет дальнейшие трудности в поддержании диапазонов в 0 с нижней стороны, если вы увеличиваете размер до точки, где он виден. Если вы сделаете точки действительно большими, они расширяют диапазон, чтобы приспособиться к перекрытию за плоскостями x = 0 или y = 0.)