2 回答
TA贡献1943条经验 获得超7个赞
您可以使用 NumPy 索引。由于 NumPy 已经是 的依赖项matplotlib,您可以通过将列表转换为数组来使用数组索引。
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X = np.array([3, 5, 6, 7])
Y = np.array([2, 4, 5, 9])
Z = np.array([1, 2, 6, 7])
ax.scatter(X[Z>5], Y[Z>5], Z[Z>5], s=40, c='r', marker='o')
ax.scatter(X[Z<=5], Y[Z<=5], Z[Z<=5], s=40, c='b', marker='x')
plt.show()

TA贡献1875条经验 获得超5个赞
为每个条件创建单独的点:
X1,Y1,Z1 = zip(*[(x,y,z) for x,y,z in zip(X,Y,Z) if z<=5])
X2,Y2,Z2 = zip(*[(x,y,z) for x,y,z in zip(X,Y,Z) if z>5])
ax.scatter(X1, Y1, Z1, c='b', marker='x')
ax.scatter(X2, Y2, Z2, c='r', marker='o')
添加回答
举报
