如何在python中绘制带有两个数组的堆积直方图

2024-09-30 08:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个堆叠的直方图,显示恶性肿瘤和良性肿瘤的肿块厚度,其中恶性级别为红色,良性级别为蓝色。在

我得到了“束厚”阵列和“良性”或“恶性”阵列。良恶性由2s和4s组成

  1. 如果良性或恶性等于2,则为良性(蓝色)。在
  2. 如果它等于4,它是恶性的(红色)。在

我不知道如何给良性和恶性肿瘤上色。我的柱状图显示的不是我想要达到的目标。在

这是到目前为止我的代码和柱状图:

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)

enter image description here


Tags: 代码目标figax直方图级别tmp蓝色
1条回答
网友
1楼 · 发布于 2024-09-30 08:21:51

要使用每个组的不同长度的列表获得堆叠的直方图,您需要组合一个列表列表。这就是您对tmp变量所做的操作。但是,我认为您在for循环中使用了错误的索引。在上面,您声明要根据变量benign_or_malignant标记数据。你想测试它到底是2还是4。如果你真的只想要这两种可能性,就这样重写:

for i in [2,4]:
   indices = np.where(benign_or_malignant==i )
   tmp.append(clump_thickness[indices])

相关问题 更多 >

    热门问题