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

时间:2013-02-03 17:01:26

标签: python matplotlib

我正在使用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会自动添加一些阴影,使更远的点看起来更透明/颜色比近点更亮。这使得在视觉上比较各个点的颜色非常困难。

有什么方法可以关闭它吗?

3 个答案:

答案 0 :(得分:1)

您需要在分散函数中添加depthshade=False作为参数。

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

Matplotlib 3D tutorial

答案 1 :(得分:0)

这实际上也是Matplotlib的2d绘图散点图的一个特征,这里有一个question,可能有解决方案。

Scatter的输入是实际需要配置的内容。

答案 2 :(得分:0)

只需在分散函数中添加alpha = 1作为参数即可。

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