从Python的频率表中绘制CDF

时间:2018-08-01 21:33:28

标签: python matplotlib

我有一些频率数据:

Rank Count
A    34
B    1
C    1
D    2
E    1
F    4
G    112
H    1 
 ...

在字典中:

d = {"A":34,"B":1,"C":1,"D":2,"E":1,"F":4,"G":112,"H":1,.......}

字母代表从最高到最低(从A到Z)的排名,以及我在数据集中观察到排名的次数。

在字典中已有观测频率的情况下,如何绘制累积分布函数?我希望能够看到观察结果的总体排名。例如:50%的观察结果的等级低于E。

我一直在搜索有关此的信息,但是我总是找到从原始观测值而非计数中绘制CDF的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

也许您想绘制一个条形图,其等级在x轴上,而cdf在y轴上?

u = u"""Rank Count
A    34
B    1
C    1
D    2
E    1
F    4
G    112
H    1"""

import io
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv(io.StringIO(u), delim_whitespace=True)
df["Cum"] = df.Count.cumsum()/df.Count.sum()
df.plot.bar(x="Rank", y="Cum")

plt.show()

enter image description here