簡體   English   中英

如何使用R做3D圖?

[英]How to do a 3D plot using R?

我想使用R繪制3D圖。我的數據集是獨立的,這意味着x,y和z的值不相互依賴。 我想要的情節在這張照片中給出:

三維圖

該圖是使用MATLAB的人繪制的。 如何使用R做相同類型的繪圖?

自發布圖像文件以來,您似乎並沒有在嘗試制作3d散點圖,而是嘗試使用連續色標來指示第三個變量的值的2d散點圖。

選項1:對於這種方法,我將使用ggplot2

# make data
mydata <- data.frame(x = rnorm(100, 10, 3),
                     y = rnorm(100, 5, 10),
                     z = rpois(100, 20))
ggplot(mydata, aes(x,y)) + geom_point(aes(color = z)) + theme_bw()

產生: 在此處輸入圖片說明

選項2:要制作3D散點圖,請使用lattice包裝中的cloud函數。

library(lattice)
# make some data
x <- runif(20)
y <- rnorm(20)
z <- rpois(20, 5) / 5
cloud(z ~ x * y)

在此處輸入圖片說明

我通常使用基本繪圖功能和一些輔助功能來進行這些類型的繪圖,這些功能來自於沉降片包裝中的顏色級別和顏色圖例(您需要從GitHib安裝devtools軟件包)。

例:

#library(devtools)
#install_github("marchtaylor/sinkr")
library(sinkr)

# example data
grd <- expand.grid(
  x=seq(nrow(volcano)),
  y=seq(ncol(volcano))
)
grd$z <- c(volcano)

# plot
COL <- val2col(grd$z, col=jetPal(100))

op <- par(no.readonly = TRUE)
layout(matrix(1:2,1,2), widths=c(4,1), heights=4)
par(mar=c(4,4,1,1))
plot(grd$x, grd$y, col=COL, pch=20)
par(mar=c(4,1,1,4))
imageScale(grd$z, col=jetPal(100), axis.pos=4)
mtext("z", side=4, line=3)
par(op)

結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM