値ごとに色の濃さを変えたい
前回の質問に対する回答者のおかげで、値によって色の濃さを変えてplotすることはできました。
今回行いたいことは、メンバーシップ値(01)の値の大きさで濃さを指定したいです。0.3の時は、薄く、0.3~0.6は少し濃くなど
例えば、メンバーシップ値が0
clusteringはクラスタリングの結果で、クラスタ番号を指します。
該当のソースコード
python
1def visualizeClustering(data, clustering, eps, minPoints, maxPoints,memberships): 2 3 c_labels = list(set(clustering)) 4 m_labels = list(set(membership)) 5 6 # Eliminates multiple values 7 # Color for each cluster 8 colors = plt.cm.Spectral(np.linspace(0, 1, len(c_labels))) 9 alphas = np.linspace(0, 1,len(m_labels)) 10 11 cs = [(l,colors[i]) for i,l in enumerate(c_labels)] 12 ms = [(l,alphas[i]) for i,l in enumerate(m_labels)] 13 14 for c,m in itertools.product(cs, ms): 15 # 2つのラベルで抽出 16 if c[0] == -1: 17 for i in range(0,len(c_labels)): 18 c[1][i]=0 19 20 mask = (clustering == c[0]) & (membership == m[0]) 21 xy = data[mask] 22 23 plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=c[1], markeredgecolor='k', alpha=m[1], markersize=7) 24 25plt.show()
試したこと
alphas=list((0.3,0.5,0.7,1))のように濃さを作成し、
if文で各点のmembershipごとにalpahsを指定しようとしました。
教えていただいたコードを崩さないようにしたら、分からなくなってしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/12 08:04