1
私は、色とマーカーと独立した次元の両方を使用する3Dスキャターを作成しました。私はカラーバーの凡例を追加しましたが、マーカーサイズの凡例を作成する方法を理解することはできません。matplotlibを使って3次元散布図のマーカーの凡例を作成するにはどうすればよいですか?
現在、プロットは次のようになります。理想的には
の間に徐々に増加サイズの6つのマーカーを持って凡例を作成したいと思います:
Size | Label
0 | 'Small'
50 | 'Less Small'
100 | 'Getting There'
150 | 'Above Average'
200 | 'Pretty Big'
250 | 'Large'
ここにプロットを生成するコードがあります。入力変数xp、yp、zp、cp、およびcoは、他の場所で生成したリストです。
mat.style.use(['ggplot'])
fig = plt.figure(figsize=(20,15));
norm = mat.colors.Normalize(vmin=min(co), vmax=max(co))
mapper = cm.ScalarMappable(norm=norm, cmap=cm.RdBu)
cc = list()
for v in co:
cc.append(mapper.to_rgba(v))
ax = fig.add_subplot(111, projection='3d');
ax.scatter(xp, yp, zp, s=cp, c=cc, depthshade=True, linewidth=1, edgecolor='black');
mapper.set_array(cc)
plt.colorbar(mapper, label='Count')
y = lambda x: (np.tanh(-x*50.)+1.)*250
x = np.arange(0,.05,.01)
sizes = y(x)
labels = x
# I can't figure out what to do here:
l = ax.legend(sizes, scatterpoints = len(sizes))
これは私が探していたものです。ありがとう! – DNadler