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