Pythonのチュートリアル:3次元表面形状をmatplotlibの

Pythonのチュートリアル:3D表面でmatplotlibの輪郭

xy平面輪郭が、3D画像との白輪郭に平行ではないことに留意されたいです。

あなたは幼稚な方法でこれらすべてのことを描画した場合、私は(次のコードと画像を参照)を概説しません。

あなたは、透明性の表面を追加する場合、(次のコードとイメージを参照してください)私は輪郭を見ることができますが、それは本当に混乱に見えます

import numpy as np
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
X, Y = np.mgrid[-1:1:30j, -1:1:30j]
Z = np.sin(np.pi*X)*np.sin(np.pi*Y)
ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0.5, rstride=1, cstride=1)
ax.contour(X, Y, Z, 10, lw=3, cmap="autumn_r", linestyles="solid", offset=-1)
ax.contour(X, Y, Z, 10, lw=3, colors="k", linestyles="solid")
plt.show()

Pythonのチュートリアル:3D表面でmatplotlibの輪郭

問題:でmatplotlibの中でこの結果を達成する方法はありませんか?しかし、影は必要ありません。

アルファの輪郭の値が小さな値に設定されている場合、それは混乱思えないかもしれません。

import numpy as np
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
X, Y = np.mgrid[-1:1:30j, -1:1:30j]
Z = np.sin(np.pi*X)*np.sin(np.pi*Y)
ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0.5, rstride=1, cstride=1, alpha=0.5)
ax.contour(X, Y, Z, 10, lw=3, cmap="autumn_r", linestyles="solid", offset=-1)
ax.contour(X, Y, Z, 10, lw=3, colors="k", linestyles="solid")
plt.show()

あなたがそうしようとすると、それは明らかに間違いです

それを回転させ、あなたは間違った場所に輪郭が消失消え表示されます

import numpy as np
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
X, Y = np.mgrid[-1:1:30j, -1:1:30j]
Z = np.sin(np.pi*X)*np.sin(np.pi*Y)

ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0, rstride=1, cstride=1)
ax.contour(X, Y, Z+1, 10, lw=3, colors="k", linestyles="solid")
plt.show()

私はあなたがオフセットする輪郭にしたいと思います:

ax.contour(X、Y、Z、10、= -1、LW = 3、色= "K" をオフセット、線種= "固体"、アルファ= 0.5)

Pythonのチュートリアル:3D表面でmatplotlibの輪郭

オフセット:指定した場合、投影された輪郭線がzdirに垂直な面内でこの位置に描かれて

デフォルトzdir =「Z」が、によってノートは、zdirを設定することにより、xまたはy方向に投影することができます。

おすすめ

転載: www.linuxidc.com/Linux/2020-01/161946.htm