我想使用条形图比较不同聚类中的一个变量。
from collections import Counter
def plot_histogram(feature_values, cluster_assignment , labels):
histogram = Counter()
for cl in range(7):
for val in feature_values[cluster_assignment==cl]:
histogram[val] += 1
sorted_key_val_pairs = sorted(list(histogram.items()))
sorted_keys, sorted_vals = zip(*sorted_key_val_pairs)
plt.bar(range(len(sorted_keys)), sorted_vals)
plt.xticks(range(len(sorted_keys)), [labels[key] for key in sorted_keys])
plot_histogram(drug_data[:, 0], gmm_cluster_assignments, {-0.95197: '18-24', -0.07854: '25-34', 0.49788: '35-44',
1.09449: '45-54', 1.82213: '55-64', 2.59171: '65+'})
其中drug_data [:, 0]是我要比较的列
数组([0.49788,-0.07854,0.49788,...,-0.07854,-0.95197,-0.95197])
和gmm_cluster_assignments是集群分配
array([5,3,3,...,2,2,1],dtype = int64)
此外,我正在为要比较的数字列输入标签。目前,我的代码正在给我这样的输出:
我希望每个类别有6个不同的条形(不同的簇)。