scatterplot3d 패키지의 scatterplot3d()
함수를 사용할 때 grid=TRUE
은 XY 평면에 대해서만 격자를 표시합니다. 함수 소스 코드를 보면 X 및 Y 구성 요소 만 있습니다. 나는 그림에서 아래뿐만 아니라 YZ- 및 XZ- 평면의 격자를 그리려 :scatterplot3d에 yz- 및 xz-grid 추가
나는 아무 소용이 격자 이미지를 scatterplot3d R의 예제 이미지를 검색했다. 나는 s3d$plane3d
에 대해 생각했지만 생성 된 비행기는 매우 엉망으로 보인다.
R에서 코드 편집 또는 쓰기 기능을 사용 해본 경험이 없습니다. xy.grid, yz.grid 및 xz.grid 인수를 추가하고 다음과 같이 격자에 대한 원래 정의를 수정할 수 있다고 생각했습니다.
if (xy.grid) {
i <- x.min:x.max
segments(i, z.min, i + (yx.f * y.max), yz.f * y.max +
z.min, col = col.grid, lty = lty.grid)
i <- 0:y.max
segments(x.min + (i * yx.f), i * yz.f + z.min, x.max +
(i * yx.f), i * yz.f + z.min, col = col.grid, lty = lty.grid)
}
if (xz.grid) {
i <- x.min:x.max
segments(i, y.min, i + (zx.f * z.max), zy.f * z.max +
y.min, col = col.grid, lty = lty.grid)
i <- 0:z.max
segments(x.min + (i * zx.f), i * zy.f + y.min, x.max +
(i * zx.f), i * zy.f + y.min, col = col.grid, lty = lty.grid)
}
if (yz.grid) {
i <- y.min:y.max
segments(i, x.min, i + (yz.f * z.max), zx.f * z.max +
x.min, col = col.grid, lty = lty.grid)
i <- 0:z.max
segments(y.min + (i * yz.f), i * zx.f + x.min, y.max +
(i * yz.f), i * zx.f + x.min, col = col.grid, lty = lty.grid)
}
그리고이 y 블록을 정의하기 위해 x와 z에 합치적인 방식으로이 코드 블록을 추가하려고합니다.
y.range <- range(dat$y[is.finite(dat$y)], ylim)
y.prty <- pretty(y.range, n = lab[1], min.n = max(1, min(0.5 *
lab[1], p.lab[1])))
y.scal <- round(diff(y.prty[1:2]), digits = 12)
dat$y <- dat$y/y.scal
y.range <- range(y.prty)/y.scal
y.max <- ceiling(y.range[2])
y.min <- floor(y.range[1])
if (!is.null(ylim)) {
y.max <- max(y.max, ceiling(ylim[2]/y.scal))
y.min <- min(y.min, floor(ylim[1]/y.scal))
}
y.range <- range(y.min, y.max)
그러나이 새로운 코드를 실행하면 Error in segments(i, y.min, i + (zx.f * z.max), zy.f * z.max + y.min, : object 'zx.f' not found
과 같은 오류가 발생합니다. 이 용어가 어떻게 그리고 어디에서 기능 코드에 정의되어 있는지 나는 잘 모르겠습니다. 덕분에 올바른 방향으로 인도하는 데 도움이 될 것입니다. scatterplot3d function source code
는 당신의 도움을 주셔서 감사합니다! 나는 내일 밤 해결책을 연구 할 것이다. – shirleywu
@shirleywu 당신은 오신 것을 환영합니다. – agstudy
방금 나는 최고의 대답이 자동으로 현상금을 수여하지 않는다는 것을 깨달았습니다, 미안 해요! 그리고 다시 한 번 감사드립니다! – shirleywu