Matplotlib 1.4+ の場合、@fraxel によって以下に提供される回答が最良の解決策です:ax.scatter
引数を指定して呼び出しますdepthshade=False
。
これを制御できる引数はありません。ここにいくつかのハック方法があります。
メソッドを無効set_edgecolors
にしset_facecolors
て、mplot3d が色のアルファ部分を更新できないようにします。
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca(projection='3d')
x = np.random.sample(20)
y = np.random.sample(20)
z = np.random.sample(20)
s = ax.scatter(x, y, z, c="r")
s.set_edgecolors = s.set_facecolors = lambda *args:None
ax.legend()
ax.set_xlim3d(0, 1)
ax.set_ylim3d(0, 1)
ax.set_zlim3d(0, 1)
plt.show()
後で呼び出しset_edgecolors
とset_facecolors
メソッドが必要な場合は、これら 2 つのメソッドを無効にする前にバックアップできます。
s._set_facecolors, s._set_edgecolors = s.set_facecolors, s.set_edgecolors