0

R データはxy、およびz形式で、xそれぞれy長さ 10 および 19 のベクトルでありz、10x19 整数の行列です。3D サーフェスを印刷する次のコードがあります。

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)

私の問題は、y軸に 2 の累乗 (4、8、16、32、64、...、2048、..) が含まれていることです。これにより、ほとんどのデータ ポイントがプロットの低範囲部分に押し込まれます。私が望むのは、データ ポイントの均等な分布です。つまり、点 4 と 8 の間は、Excel スプレッドシートの表面プロットのように、1024 と 2048 の間と同じスペースにする必要があります。

persp3d でそれを実現するコマンドまたはパラメーターを教えてください。

本当にありがとう!ロッディ

追加: 軸を log2 に変更した後、または実際の軸の値の代わりに ac(1:length(x)) と c(1:length(y)) を実行した後、見栄えは良くなりましたが、これらの奇妙なジグソー形状になりました。私のデータではまったく表されていません。ここで何が起こっているのか手がかりがありますか?ここの写真を見てくださいhttp://i.stack.imgur.com/WBI3r.png

4

1 に答える 1

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)
于 2013-11-14T03:10:06.843 に答える