如何在python中使用两个数组绘制堆叠直方图
我正在尝试创建一个堆叠的直方图,显示恶性和良性肿瘤的肿块厚度,恶性级别为红色,良性级别为蓝色 我得到了丛状厚度阵列和良性或恶性阵列。良性或恶性阵列由2和4组成如何在python中使用两个数组绘制堆叠直方图,python,matplotlib,histogram,Python,Matplotlib,Histogram,我正在尝试创建一个堆叠的直方图,显示恶性和良性肿瘤的肿块厚度,恶性级别为红色,良性级别为蓝色 我得到了丛状厚度阵列和良性或恶性阵列。良性或恶性阵列由2和4组成 如果良性或恶性等于2,则为良性(蓝色) 如果等于4,则为恶性(红色) 我不知道如何给良性肿瘤和恶性肿瘤着色。我的柱状图显示的不是我试图实现的目标 这是迄今为止我的代码和柱状图: fig, ax = plt.subplots(figsize=(12,8)) tmp = list() for i in range(2): indices =
fig, ax = plt.subplots(figsize=(12,8))
tmp = list()
for i in range(2):
indices = np.where(benign_or_malignant>=i )
tmp.append(clump_thickness[indices])
ax.hist(tmp,bins=10,stacked=True,color = ['b',"r"],alpha=0.73)
要使用每组不同长度的列表获得堆叠直方图,您需要组合列表列表。这就是您使用
tmp
变量所做的。但是,我认为您在for循环中使用了错误的索引。在上面,您声明要根据变量良性或恶性
标记数据。您需要测试它是正好是2还是正好是4。如果你真的想要这两种可能性,可以这样重写:
for i in [2,4]:
indices = np.where(benign_or_malignant==i )
tmp.append(clump_thickness[indices])
非常感谢你。