R:具有固定坐标的3D曲面图(persp3d),如Excel中所示

时间:2013-11-14 02:13:37

标签: r 3d plot

我有xyz格式的我的R数据,xy分别是长度为10和19的向量,{ {1}}是10x19整数的矩阵。我有以下代码打印我的3D表面:

z

我的问题是height <- (z - range(z)[1]) / diff(range(z)) r.prop <- height g.prop <- 0 b.prop <- 1 - height color <- rgb(r.prop, g.prop, b.prop, maxColorValue=1) persp3d(x, y, z, theta=50, phi=25, expand=0.75, col=color, ticktype="detailed", xlab="filesize [kb]", ylab="record size [kb]", zlab="speed [b/s]", axes=TRUE) 轴包含2的幂(4,8,16,32,64,...,2048,..),它将我的大部分数据点压缩为低 - 范围的一部分情节。我想要的是数据点的均匀分布,即第4点和第8点之间应该是1024和2048之间的相同空间,就像它在Excel电子表格表面图中一样。

你能告诉我使用persp3d会发生哪种命令或参数吗?

非常感谢! Loddi

增加: 将轴更改为log2,或者只是执行ac(1:length(x))和c(1:length(y))而不是实际的轴值,它看起来更好但现在有这些奇怪的拼图形状不是完全代表我的数据。你们知道这里发生了什么吗? 看这里的图片http://i.stack.imgur.com/WBI3r.png

1 个答案:

答案 0 :(得分:0)

尝试使用log2(y)代替y

persp3d(x, log2(y), z, theta=50, phi=25, expand=0.75, col=color, ticktype="detailed",
    xlab="filesize [kb]", ylab="record size [kb]", zlab="speed [b/s]", axes=FALSE, 
    normal_x=x, normal_y=y, normal_z=z)