繁体   English   中英

如何在R的plot3d(library(“ rgl”))中制作对数轴?

[英]How to make logarithmic axes in plot3d (library(“rgl”)) in R?

使用rgl软件包在plot3d中使轴对数/具有自定义刻度线时,我遇到了极大的困难。 我已经尝试在代码中使用“ log ='xy'”命令,就像在基本绘图功能中一样,并且尝试使用rgl.bbox创建自定义刻度线。 我的y轴绘制良好,但我的x和z不配合。 我什么都不能工作。 有任何想法吗? 以下是我的数据,代码和得到的结果的图片。 我还应该补充一点,我基本上是使用任意z值在3d中绘制多个2d散点图,以分隔各个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" ,您需要自己进行转换。

您的代码要求对数标签,但是您没有进行对数转换,因此它不起作用。 您还需要重新缩放数据。

您没有发布可复制的示例,但是创建示例很容易:

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")

样本输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM