如何在 R 中的 plot3d(库("rgl"))中制作对数轴?
How to make logarithmic axes in plot3d (library("rgl")) in R?
我在使用 rgl 包在 plot3d 中制作我的轴 logarithmic/have 自定义刻度线时遇到了极大的困难。我试过在我的代码中使用 "log='xy'" 命令,就像在基本绘图函数中一样,我还尝试使用 rgl.bbox 创建自定义刻度线。我的 y 轴绘制正常,但我的 x 和 z 不合作。我什么都做不了。有任何想法吗?下面是我的数据、代码和我得到的结果的图片。我还应该补充一点,我基本上是在 3d 中绘制多个 2d 散点图,使用任意 z 值来分隔各个 2d 图。
https://www.dropbox.com/s/wv24rmnyalm3vvc/scattertest.csv?dl=0
#!/usr/bin/env Rscript
library("rgl")
data <- read.csv("~/Desktop/scattertest.csv", header=TRUE, fill=TRUE, sep=',')
x <- names(data[2])
y <- names(data[3])
z <- names(data[4])
plot3d(data[[x]], data[[z]], data[[y]], type="s", size=0.75, lit=FALSE, axes=FALSE,
xlab="rpmn", ylab="round", zlab="rpmt", log="xz",
xmin=c(0.1, 10^6), ymin=c(1,4), zmin=c(0.1, 10^6))
rgl.bbox(color="grey50", emission="grey50",
xat = c(0.1, 1, 10, 100, 10^3, 10^4, 10^5, 10^6), yat = c(1, 2, 3, 4), zat = c(0.1, 1, 10, 100, 10^3, 10^4, 10^5, 10^6),
xlen=8, ylen=4, zlen=8)
plot3d()
不支持log="xy"
,需要您自行改造。
您的代码要求对数标签,但您没有进行对数变换,因此它不起作用。您还需要重新缩放数据。
您没有post一个可重现的例子,但创建一个很容易:
x <- rlnorm(20, 2, 6)
y <- runif(20, 1, 4)
z <- rlnorm(20, 2, 6)
xyz <- cbind(log(x), y, log(z))
plot3d(xyz, axes = FALSE)
ticks <- 10^((-1):6)
bbox3d(xat = log(ticks), xlab = ticks, yat = pretty(1:4),
zat = log(ticks), zlab = ticks,
color="grey50", emission="grey50")
我在使用 rgl 包在 plot3d 中制作我的轴 logarithmic/have 自定义刻度线时遇到了极大的困难。我试过在我的代码中使用 "log='xy'" 命令,就像在基本绘图函数中一样,我还尝试使用 rgl.bbox 创建自定义刻度线。我的 y 轴绘制正常,但我的 x 和 z 不合作。我什么都做不了。有任何想法吗?下面是我的数据、代码和我得到的结果的图片。我还应该补充一点,我基本上是在 3d 中绘制多个 2d 散点图,使用任意 z 值来分隔各个 2d 图。
https://www.dropbox.com/s/wv24rmnyalm3vvc/scattertest.csv?dl=0
#!/usr/bin/env Rscript
library("rgl")
data <- read.csv("~/Desktop/scattertest.csv", header=TRUE, fill=TRUE, sep=',')
x <- names(data[2])
y <- names(data[3])
z <- names(data[4])
plot3d(data[[x]], data[[z]], data[[y]], type="s", size=0.75, lit=FALSE, axes=FALSE,
xlab="rpmn", ylab="round", zlab="rpmt", log="xz",
xmin=c(0.1, 10^6), ymin=c(1,4), zmin=c(0.1, 10^6))
rgl.bbox(color="grey50", emission="grey50",
xat = c(0.1, 1, 10, 100, 10^3, 10^4, 10^5, 10^6), yat = c(1, 2, 3, 4), zat = c(0.1, 1, 10, 100, 10^3, 10^4, 10^5, 10^6),
xlen=8, ylen=4, zlen=8)
plot3d()
不支持log="xy"
,需要您自行改造。
您的代码要求对数标签,但您没有进行对数变换,因此它不起作用。您还需要重新缩放数据。
您没有post一个可重现的例子,但创建一个很容易:
x <- rlnorm(20, 2, 6)
y <- runif(20, 1, 4)
z <- rlnorm(20, 2, 6)
xyz <- cbind(log(x), y, log(z))
plot3d(xyz, axes = FALSE)
ticks <- 10^((-1):6)
bbox3d(xat = log(ticks), xlab = ticks, yat = pretty(1:4),
zat = log(ticks), zlab = ticks,
color="grey50", emission="grey50")