<p>使用来自<code>matplotlib</code>的函数<a href="https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#tri-surface-plots" rel="nofollow noreferrer">^{<cd1>}</a>和<a href="https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#scatter-plots" rel="nofollow noreferrer">^{<cd2>}</a>,给定的<code>X Y Z</code>数据可以类似于<a href="https://i.stack.imgur.com/rKQV0.png" rel="nofollow noreferrer">given plot</a>绘制。在</p>
<pre class="lang-py prettyprint-override"><code>import sys
import csv
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
# Read CSV
csvFileName = sys.argv[1]
csvData = []
with open(csvFileName, 'r') as csvFile:
csvReader = csv.reader(csvFile, delimiter=' ')
for csvRow in csvReader:
csvData.append(csvRow)
# Get X, Y, Z
csvData = np.array(csvData)
csvData = csvData.astype(np.float)
X, Y, Z = csvData[:,0], csvData[:,1], csvData[:,2]
# Plot X,Y,Z
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_trisurf(X, Y, Z, color='white', edgecolors='grey', alpha=0.5)
ax.scatter(X, Y, Z, c='red')
plt.show()
</code></pre>
<p>在这里</p>
<ul>
<li>包含<code>X Y Z</code>数据的文件作为上述脚本的参数提供</li>
<li>在<code>plot_trisurf</code>中,用于控制外观的参数。e、 g.<code>alpha</code>用于控制表面不透明度</li>
<li>在<code>scatter</code>中,<code>c</code>参数指定绘制在曲面上的点的颜色</li>
</ul>
<p>对于给定的数据文件,将生成以下绘图</p>
<p><a href="https://i.stack.imgur.com/X5NYW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/X5NYW.png" alt="enter image description here"/></a></p>
<p><em>注意:</em>在这里,地形是由给定的一组三维点的三角剖分形成的。所以,在绘图中沿曲面的等高线并没有和X轴和Y轴对齐</p>