【发布时间】:2020-09-21 07:33:30
【问题描述】:
我有一个堆叠直方图对应三个类别(Cat-I、II、III),这样在每个 bin 中我可以看到每个类别的频率。我希望 Y 轴显示每个 bin 中每个类别的百分比,以便每个 bin 中三个类别的比率加起来为 1。我尝试了以下方法来获取堆叠直方图,任何帮助调整代码以便我可以显示百分比将不胜感激。我知道设置 density=True 会给出概率密度,但我不是在寻找它。
import numpy as np
import matplotlib.pyplot as plt
data1=np.loadtxt('C:/Users/Hrihaan/Desktop/Cat-I.txt')
data2=np.loadtxt('C:/Users/Hrihaan/Desktop/Cat-II.txt')
data3=np.loadtxt('C:/Users/Hrihaan/Desktop/Cat-III.txt')
x1=data1[:,1]
x2=data2[:,1]
x3=data3[:,1]
bins= 8
bins_list = [301, 340, 372, 405, 431, 472, 514, 599, 949] # I defined the bins range so that I have bins of equal elements, the first 7 bins all have 23 elemnets where the last has 24
plt.hist([x1,x3,x2], bins=bins_list, histtype='bar', color=["mediumspringgreen", "pink", "lightskyblue"], stacked=True, edgecolor='dimgrey', linewidth=20, density=False)
【问题讨论】:
-
您的示例并不是真正的工作示例,因为我们无权访问您计算机中的文件。
-
我编辑了文本。
标签: python numpy matplotlib histogram bins