使用函数plot_trisurf https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#tri-surface-plots and scatter https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html#scatter-plots from matplotlib
, given X Y Z
数据可以类似地绘制给定的情节 https://i.stack.imgur.com/rKQV0.png.
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()
Here,
- 文件包含
X Y Z
作为上述脚本的参数提供的数据
- in
plot_trisurf
,用于控制外观的参数。例如alpha
用于控制表面的不透明度
- in
scatter
, c
参数指定表面上绘制的点的颜色
对于给定的数据文件,生成以下图
Note:这里,地形是通过对给定的 3D 点集进行三角测量而形成的。因此,图中沿表面的轮廓未与 X 轴和 Y 轴对齐