2016-09-19 15 views
2

私はプロットして3Dサーフェスプロットを作成したいと思います。これはかなりうまくいっていますが、x軸とy軸の値は意味をなさない。彼らははるかに高い必要があります。私はプロットのために行列を使用しました。xとyの値は行と列の名前で、z値(仰角と呼ばれます)はもちろん行列自体です。 Plotlyはxとyのデータの値を使用していないようです。 xとyの値の範囲は0〜6です。3Dサーフェスグラフにx軸とy軸の値が正しくない

head(m.dune)  
>  1.90 1.95 2 2.05 2.01 2.15 
> 0  NA NA NA NA NA NA 
> 0.05 NA NA NA NA NA NA 
> 0.10 1.14 1.14 NA NA NA NA 
> 0.15 1.15 1.15 1.15 1.15 1.16 1.16 
> 0.20 1.16 1.16 1.16 1.16 1.16 1.17 
> 0.25 1.17 1.17 1.17 1.17 1.18 1.18 

これは私が使用しているコードです::これは私の行列の小さなサンプルです

dune.plot <- plot_ly(z = m.dune, type = "surface") %>% 
layout(
    scene=list(
    xaxis=list(title='x (m)'), 
    yaxis=list(title='y (m)'), 
    zaxis=list(title='Elevation (m)'))) 
dune.plot 

グラフが間違っxとy軸と、このように見えますが、私はどのように確認していません私は正しい値を得ることができます。 Jimbouは彼のコメントで指摘したように

3d surface plot

+1

xとyの値は正しいです。これらは、データの行数と列数を示します。値 'm.dune [1,1]'は位置x = 1での高さです。 y = 1である。したがって、あなたの行列は 'c(70,80)'について 'dim()'を持っていると仮定します。 plot_ly(z =火山[1:20、1:20]/100、type = "surface") 'と' plot_ly(z =火山[1:50、1:50]/100、type = "surface ")'。 – Jimbou

+0

ああ、xとyの値、どのように実際の値を表示するか考えて説明しますか?セルのサイズは0.05ですが、xとyの値でセルのサイズを掛けることはできますか? – Marinka

答えて

3

x軸とy軸上の値は、あなたの行列の行と列の数です。私は0.05のセルサイズを持っているので、値は正しい距離を表していません。正しい距離を表示するには、適切なxとyの値をプロットグラフのリストとして追加する必要があります。これらのxとyの値は同じサイズでなければならず、そうでなければグラフの一部がカットオフになります。正しいx値とy値を取得するコードは次のとおりです。

y <- x <- as.numeric(rownames(m.dune)) 
# More rows than column, and the x and y should have the same size 

dune1.plot <- plot_ly(z = m.dune1, x= x, y=y, type = "surface") %>% 
layout(
    scene=list(
    xaxis=list(title='x (m)'), 
    yaxis=list(title='y (m)'), 
    zaxis=list(title='Elevation (m)'))) 
dune1.plot 
関連する問題