私はxとyのパラメータを受け取り、zの出力を返すz関数を持っています。私はこれを3Dでプロットし、スケールを設定したいと思います。どうやってこれを簡単にすることができますか?私はドキュメントを見て、あまりにも多くの時間を過ごしましたが、一度これを行う方法はありません。私はmatplotlibを使ってz関数を与えられた3次元プロットを作成したい
答えて
プロットスタイルの種類はデータに依存します(つまり、3Dカーブやサーフェス、散布などをプロットしようとしていますか?)が、演奏を開始するための実例が必要です。
基本的には、関数をプロットに渡さないで、まずxsとysのドメインを作成し、それからzsを計算します。私の例では、ドメインのx-y平面に等間隔に配置された点の単純なグリッドを使用しました。表面のために
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random
def fun(x, y):
return x + y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 10
xs = [i for i in range(n) for _ in range(n)]
ys = range(n) * n
zs = [fun(x, y) for x,y in zip(xs,ys)]
ax.scatter(xs, ys, zs)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
それはあなたが2D配列内のドメインのためのグリッドに渡し、少し違うのです。ここで、滑らかな表面の例は次のとおり
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random
def fun(x, y):
return x**2 + y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(-3.0, 3.0, 0.05)
X, Y = np.meshgrid(x, y)
zs = np.array([fun(x,y) for x,y in zip(np.ravel(X), np.ravel(Y))])
Z = zs.reshape(X.shape)
ax.plot_surface(X, Y, Z)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
何らかの理由で、関数を変更してもグラフはほとんど変わらないでしょうか?滑らかな表面を作る方法はありますか? – WhatsInAName
OK、傾斜のある放物面で答えを更新しました。 – wim
最後のグラフについては、zに沿ってサーフェスをカラーリングする方法はありますか?言ってやるがいい。 –
- 1. PythonのMatplotlibを使ったCの3次元グラフ
- 2. matplotlibを使用したオフセットのない3次元散布図
- 3. opencvの関数で、特定の次元に沿った2次元または3次元行列の最小値を与えることができます。
- 4. matplotlibを使ってプロットされたデータからの外挿
- 5. matplotlibの3次元回転プロットを保存する
- 6. Rの中のrglを使って3次元のプロットを作る?
- 7. APコンピュータサイエンス:メンバ関数は、だから私は次のコード与えられてい
- 8. ggplotとaes_stringを使ったプロット関数の作成
- 9. 与えられたランダムなパスを使ってグラフを作成する
- 10. matplotlibを使ったPythonプロットの日付
- 11. python、numpy、matplotlibを使ってマスクされたサーフェスプロットをプロットする
- 12. Away3d与えられた3次元の配列からサーフェスをレンダリングする方法は?
- 13. 与えられたロケールを使用してNSSortDescriptorを作成する
- 14. スプライン解から与えられた点の配列から3次元のBスプラインコントロール点を見つける?
- 15. 次のように私は2次元配列を持つ午前与えられた最大値
- 16. 3つの位置引数が与えられましたが、4が与えられました
- 17. g ++を使って与えられたコードをコンパイルするプログラムを作る
- 18. 3次元SVMをプロットする
- 19. opencvを使用して3次元ポイントからパノラマ画像を作成する
- 20. python:次元インデックスを与えられた多次元配列の1スライスを抽出
- 21. jqueryを使って与えられたdivに移動
- 22. は、私は1次元配列を持っているし、ヒストグラムをプロットし、ガウスことによってそれを当てはめることによって、私は(私のガウスのシグマスケールで)ノイズマップ上の信号を作成する1次元配列
- 23. 与えられたとき-When-Then NUnitを使った例
- 24. C - 私はプロジェクトを与えられたと(以下貼り付けられている私のコード)は、次の操作を行うように言われた
- 25. * Iは、各軸</p> <p>に間隔によって分離された3次元位置の3次元グリッドを返す関数を作成する3次元位置のグリッド
- 26. 2D配列が与えられた - 元の配列の値を使用して新しい配列を作成したい
- 27. Vimは私が正しくフォーマットされたxmlファイルを持っており、ここでの答えとして与えられたコマンドを次のXML
- 28. Pythonで変数 "x"が与えられたリストを作成するには?
- 29. アンドロイド2次元のハッシュマップIは、オブジェクトのハッシュマップを作成し、2次元のキーを使用したい
- 30. Pythonでmatplotlibを使って対数軸をプロットする
[3Dプロットの能力(http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/tutorial.html)matplotlibのには非常に添加しました最近のバージョン、私が知る限り。 –
私は既にそのページを見て、任意のz関数を3次元プロッタに渡す例は見つけられませんでした – WhatsInAName