我想使用R绘制3D绘图。我的数据集是独立的,这意味着x,y和z的值不相互依赖。我想要的情节如下图所示:
这个情节是由某人使用MATLAB绘制的。我怎么能用R做同样的情节?
答案 0 :(得分:2)
由于您发布了图像文件,因此您似乎没有尝试制作三维散点图,而是使用连续色标的二维散点图来指示第三个变量的值。
选项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:要制作三维散点图,请使用cloud
包中的lattice
函数。
library(lattice)
# make some data
x <- runif(20)
y <- rnorm(20)
z <- rpois(20, 5) / 5
cloud(z ~ x * y)
答案 1 :(得分:0)
我通常使用基本绘图函数和一些帮助函数来执行这些类型的绘图,这些函数用于sinkr包中的颜色级别和颜色图例(您需要使用devtools包从GitHib安装)。
#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)