web-dev-qa-db-ja.com

X、Y、Zデータ、Excel、その他のツールからの3Dプロット

次のようなデータがあります。

1000    13  75.2
1000    21  79.21
1000    29  80.02
5000    29  87.9
5000    37  88.54
5000    45  88.56
10000   29  90.11
10000   37  90.79
10000   45  90.87

最初の列をx軸ラベル、2番目の列をy軸ラベル、3番目の列をz値として使用します。そのようにして表面を表示したい。これを行う最良の方法は何ですか? Excelを試しましたが、実際にはどこにも行きませんでした。これを行うためのツールについての提案はありますか?誰でもExcelでこれを行う方法を知っていますか?

ありがとう

13
David Williams

matplotlib :)を使用することになりました

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
x = [1000,1000,1000,1000,1000,5000,5000,5000,5000,5000,10000,10000,10000,10000,10000]
y = [13,21,29,37,45,13,21,29,37,45,13,21,29,37,45]
z = [75.2,79.21,80.02,81.2,81.62,84.79,87.38,87.9,88.54,88.56,88.34,89.66,90.11,90.79,90.87]
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2)
plt.show()

結果は 甘い

13
David Williams

3列のデータを「表面」として表示することはできません。 「Z」データの列が1つしかない場合、表面ではなく3次元空間に線が表示されます(または、データの場合は3つの個別の線)。 Excelでこのデータを使用するには、次のようにフォーマットする必要があります。

      13    21   29      37    45   
1000  75.2                              
1000       79.21                            
1000             80.02                      
5000             87.9                   
5000                    88.54               
5000                           88.56            
10000            90.11      
10000                   90.79   
10000                          90.87

次に、実際のサーフェスを取得するには、不足しているすべてのセルに適切なZ値を入力する必要があります。これらがない場合は、サーフェスに十分なデータがないため、これを3つの別々の2Dラインとして表示することをお勧めします。

Excelが上記のデータを提供する最高の3D表現は、かなり紛らわしいです。

enter image description here

この制限されたデータセットを2Dデータとして表現する方が適切な場合があります。

enter image description here

将来の参照のためのメモとして、これらのタイプの質問は通常 superuser.com で少し良くなります。

10
Stewbob

3Dプロットにrライブラリを使用できます。

手順は次のとおりです。

最初にdata.frame()コマンドを使用してデータフレームを作成します。

Scatterplot3Dライブラリを使用して3Dプロットを作成します。

または、rglライブラリを使用してplot3d()コマンドでチャートを回転することもできます。

または、rcmdrライブラリのplot3d()コマンドを使用できます。

MATLABでは、要件に応じてsurf()、mesh()、またはsurfl()コマンドを使用できます。

[ http://in.mathworks.com/help/matlab/examples/creating-3-d-plots.html]

0
Dr Nisha Arora

Gnuplotからも利用可能なgretlも使用できます。 x y zデータをテキストファイルに入れて、以下を挿入します

splot 'test.txt' using 1:2:3 with points palette pointsize 3 pointtype 7

次に、ラベルなどを設定できます

set xlabel "xxx" rotate parallel
set ylabel "yyy" rotate parallel
set zlabel "zzz" rotate parallel
set grid
show grid
unset key
0
Robert