次のようなデータがあります。
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でこれを行う方法を知っていますか?
ありがとう
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()
結果は 甘い
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表現は、かなり紛らわしいです。
この制限されたデータセットを2Dデータとして表現する方が適切な場合があります。
将来の参照のためのメモとして、これらのタイプの質問は通常 superuser.com で少し良くなります。
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]
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