2016-10-27 17 views
1

私は軸を対数にするのが非常に難しく、rglパッケージを使ってplot3dにカスタム目盛りを付けています。私はあなたの基本的なプロット関数と同じように私のコードで "log = 'xy'"コマンドを使ってみましたが、rgl.bboxを使ってカスタム目盛りを作成しようとしました。私のy軸はうまくプロットしていますが、私のxとzは協調していません。私は働くことが何もできません。何か案は?以下は私のデータ、コード、そして私が得ている結果の写真です。また、私は基本的に、複数の2次元散布図を任意のz値を使用して3dでプロットして、個々の2次元プロットを分離すると付け加えるべきです。Rのplot3d(library( "rgl"))で対数軸を作る方法?

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) 

results from code

答えて

0

log="xy"はサポートさplot3d()にありません、あなたは、変換を自分で行う必要があります。

コードでは対数ラベルを要求しますが、対数変換は行われていないため、動作しません。データを再スケールする必要もあります。

あなたは、再現性の例を投稿していなかったが、それが簡単に作成できます1:

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

sample output

関連する問題