2016-09-09 30 views
1

我正在嘗試創建一個顯示惡性腫瘤和良性腫瘤的腫塊厚度的堆疊直方圖,惡性類爲紅色,而良性類爲藍色。如何在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) 

enter image description here

回答

1

使用不同長度的列表中爲每個組獲得疊加柱狀圖,您需要裝配清單列表。這就是您對tmp變量所做的操作。但是,我認爲你在循環中使用了錯誤的索引。在上面,您聲明您要根據變量benign_or_malignant來標記數據。你想測試它是完全2還是完全4.如果你真的只想要這兩種可能性,像這樣重寫:

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

非常感謝。 – user5909208