matplotlib三维散点图的点颜色很浅

时间:2011-12-06 15:03:00

标签: python matplotlib scatter-plot

我使用下面的命令创建了一个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位置。有没有办法让所有的点看起来都很暗和不透明?

2 个答案:

答案 0 :(得分:3)

这似乎是使用精美的3D效果散射,因此您可以区分前景中的点和背景中的点。你可能不得不破解mplot3d让它停止这样做。

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

ax.plot3D(x, y, z, 'k.', alpha=.8)

答案 1 :(得分:2)

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