1

我使用下面的命令创建了一个 3D 散点图:

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

sizeseq = 2
colorseq = "k"

fig = plt.figure(1, (5,5), dpi=300)
ax = Axes3D(fig)
ax.view_init(20, -45)

x, y, z = [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10]
ax.scatter(x, y, z, c=colorseq, s=sizeseq, lw=0, alpha=.8)

plt.show()

但是即使我将 alpha 设置为 1,这些点的颜色看起来也很浅。它们看起来就像是在面具后面。它似乎也取决于各个点的 3D 位置。有没有办法让所有的点看起来真的很暗和不透明?

4

2 回答 2

3

这似乎是使用花哨的 3d 效果分散的,因此您可以区分前景中的点和背景中的点。您可能必须破解 mplot3d 才能让它停止这样做。

或者,您可以使用不显示此行为的 plot3D。

ax.plot3D(x, y, z, 'k.', alpha=.8)
于 2011-12-06T15:44:15.550 回答
2

使用 alpha=0.8 的点已经看起来非常透明。不要使用阿尔法。
此外,您可以通过将它们的边缘线绘制成比它们各自的面色更深的颜色来使您的点看起来更暗。
使用 scatter 关键字参数edgecolor/edgecolors或在 scatter 创建后设置(例如用黑色边框将所有点加粗)myscatterplot.set_edgecolors(color)

于 2011-12-06T15:18:14.933 回答