示例代码:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
xlist = [1, 2, 3, 4, 5]
ylist = [1, 5, 3, 4, 2]
zlist = [6, -3, 6, -1, 2]
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(xlist, ylist, zlist)
plt.ticklabel_format(useOffset=False)
plt.show()
一个简单的3D散点图...假设我想让z轴上的最小点显示为不同的颜色。那么这个点就是第二个点:x=2,y=5,z=-3。实现这个最简单的方法是什么?(注意:如果有多个最小值,则所有最小值都应该被突出显示)
我的解决方法是使用min
函数在zlist
中找到最小值,然后使用zlist.index(min(zlist))
找到最小值的索引,接着将xlist
、ylist
和zlist
中的该项删除(并保存它)。然后使用另一个ax.scatter
命令单独绘制该点(即最小值)。但这似乎相当不优雅,而且对于平局情况也无法处理。
where
非常聪明。这绝对是最小浪费的正确解决方案。+1 - Mad Physicist