繁体   English   中英

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

[英]How to plot a stacked histogram with two arrays in python

我正在尝试创建一个堆叠直方图,显示恶性和良性肿瘤的团块厚度,恶性类为红色,良性类为蓝色。

我得到了 clump_thickness_array 和 benign_or_malignant_array。 benign_or_malignant_array 由 2s 和 4s 组成。

  1. 如果 benign_or_malignant 等于 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)

在此处输入图片说明

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM