Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用两个数组绘制堆叠直方图_Python_Matplotlib_Histogram - Fatal编程技术网

如何在python中使用两个数组绘制堆叠直方图

如何在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 =

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

我得到了丛状厚度阵列和良性或恶性阵列。良性或恶性阵列由2和4组成

  • 如果良性或恶性等于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循环中使用了错误的索引。在上面,您声明要根据变量
    良性或恶性
    标记数据。您需要测试它是正好是2还是正好是4。如果你真的想要这两种可能性,可以这样重写:

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

    非常感谢你。