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

11

我正在使用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个回答

4
你需要在scatter函数中添加参数depthshade=False
ax.scatter(xval, yval, zval, c=cval, cmap=plt.cm.gray, depthshade=False)

Matplotlib 3D 教程


1

只需在scatter函数中添加alpha = 1作为参数。

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


0

这实际上是Matplotlib的2D散点图中的一个特性,这里有一个问题,其中包含了一个可能的解决方案。

Scatter的输入实际上需要进行配置。


1
我不确定这个问题是否涉及相同的问题,因为我只有一个图表(并且我的颜色被归一化为介于0和1之间)。唯一的问题是由matplotlib添加的人工透明度以传达深度感。 - Benno
我认为这个链接会回答你的问题。 - kungphil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接