如何关闭Matplotlib 3D散点图中的透明度?

11 投票
2 回答
6105 浏览
提问于 2025-04-17 14:37

我正在使用Matplotlib的Axes3D来创建一个带有自定义颜色的散点图,代码如下:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt

fig = plt.figure(1)
ax = Axes3D(fig)
ax.scatter(xval, yval, zval, c=cval, cmap=plt.cm.gray)

这个方法运行得很好,但Matplotlib会自动给远处的点添加一些阴影效果,让远离观察者的点看起来更透明或者颜色更浅。这使得我们很难直观地比较每个点的颜色。

有没有办法关闭这个效果呢?

2 个回答

1

只需要在散点图的函数里加上 alpha = 1 这个参数就可以了。

ax.scatter(xval, yval, zval, c=cval, alpha = 1, cmap=plt.cm.gray)

5

你需要在散点图的函数里加上 depthshade=False 这个参数。

ax.scatter(xval, yval, zval, c=cval, cmap=plt.cm.gray, depthshade=False)

Matplotlib 3D 教程

撰写回答