2016-10-27 210 views
1

我在使用rgl包在plot3d中創建我的座標軸對數/具有自定義刻度標記時遇到了極大的困難。我已經嘗試在我的代碼中使用「log ='xy'」命令,就像在基本繪圖函數中一樣,並且我嘗試使用rgl.bbox創建自定義刻度標記。我的y軸繪圖很好,但我的x和z不合作。我無法得到任何工作。有任何想法嗎?以下是我的數據,代碼和我得到的結果的圖片。我還應該補充一點,我基本上用3D繪製多個二維散點圖,使用任意的z值來分隔單獨的二維圖。如何在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

有一個在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") 

sample output

相關問題