수집된 자료를 적절한 등급(또는 범주)으로 분류하고 각 등급에 해당되는 빈도수 등을 정리한 표 <img src="http://trsketch.dothome.co.kr/_contents/2009curi/images/img900027.png", width=600>
등급의 구간
In [1]:
import pandas as pd
import numpy as np
np.random.seed(0)
data = np.random.randint(50, 100, size=(8, 5))
data[0][0] = 12
data
Out[1]:
In [2]:
np.sort(data.flatten())
Out[2]:
구간 설정
In [3]:
interval = 5
interval_len = ( data.max() - 50 ) / interval
interval_len
Out[3]:
구간별 빈도수 측정
In [4]:
data1 = [[45, 1, 1],
[55, 10, 11],
[65, 9, 20],
[75, 10, 30],
[85, 6, 36],
[95, 4, 40]]
df = pd.DataFrame(data1,
index=[u'~50', u'50~60', u'60~70', u'70~80', u'80~90', u'90~100'],
columns=[u"중간값" ,u"빈도수", u"누적빈도"])
df
Out[4]:
In [5]:
import matplotlib.pyplot as plt
X = df.중간값
y = df.빈도수
plt.bar(X, y, width=5, align='center')
plt.title("histogram")
plt.xlabel("score")
plt.ylabel("frequency")
plt.xticks(X, [u'~50', u'50~60', u'60~70', u'70~80', u'80~90', u'90~100'])
plt.show()
In [6]:
X = df.중간값
y = df.누적빈도
plt.plot(X, y, "--o")
plt.xlim(45, 95)
plt.title("cumulative line plot")
plt.xlabel("score")
plt.ylabel("cumulative frequency")
plt.xticks(X, [u'~50', u'50~60', u'60~70', u'70~80', u'80~90', u'90~100'])
plt.show()