現在、Rのplot3d libraryを使用して、10x10サイズのmatrixを3次元で表示したときに、スケールバーを固定(色もできるだけ固定)にしたグラフを作成することを目指しております。

一つのmatrix(D1とします)に対してgraphを表示する方法は以下のコードで対応できます。

library(plot3D)
matrix(rexp(100, rate=.3), ncol=10) -> D1
persp3D(z = D1, zlim= c(-50, 50), phi = 30, contour = list(nlevels = 20, col = "yellow"), image = list(col = grey (seq(0, 1, length.out = 100))))

今私が困っている点は、仮に別のmatrix(D2とします)を作成して、再度persp3dで表示したときに各グラフの右側に表示されるスケールが違ってきてしまう点です。(ここではD1とD2をわざと別のレンジで作成しています。)

matrix(rexp(100, rate=.8), ncol=10) -> D2
persp3D(z = D2, zlim= c(-50, 50), phi = 30, contour = list(nlevels = 20, col = "yellow"), image = list(col = grey (seq(0, 1, length.out = 100))))

この結果です。matrixがランダム数字を含みますので、結果は毎回若干変わります

ここでは、D1(左側)のスケールは2~6でありますが、D2(右側)のスケールは0.5~2.5になっています。このスケールの違いを任意のスケール(例えば、1~5など)に固定にしたいです。webなどを参考にpersp3Dのattiributeを変更してみましたがうまくいかず、ここで質問させていただいています。

スケールを固定する方法をご存知の方がおりましたら、ご教授をお願いします。
また、plot3d以外の別の方法であれば可能などでも、教えていただけると幸いです。

よろしくお願いします。