본문 바로가기
파이썬

파이썬 Python의 matplotlib에서 cdf를 그리는 방법은 무엇입니까?

by º기록 2020. 9. 18.
반응형

다음과 같은 d 라는 무질서한 목록이 있습니다.

[0.0000, 123.9877,0.0000,9870.9876, ...]

Python에서 Matplotlib를 사용하여이 목록을 기반으로 cdf 그래프를 플로팅하고 싶습니다. 하지만 내가 사용할 수있는 기능이 있는지 모르겠어요

d = []
d_sorted = []
for line in fd.readlines():
    (addr, videoid, userag, usertp, timeinterval) = line.split()
    d.append(float(timeinterval))

d_sorted = sorted(d)

class discrete_cdf:
    def __init__(data):
        self._data = data # must be sorted
        self._data_len = float(len(data))

    def __call__(point):
        return (len(self._data[:bisect_left(self._data, point)]) / 
               self._data_len)

cdf = discrete_cdf(d_sorted)
xvalues = range(0, max(d_sorted))
yvalues = [cdf(point) for point in xvalues]
plt.plot(xvalues, yvalues)

이제이 코드를 사용하고 있지만 오류 메시지는 다음과 같습니다.

Traceback (most recent call last):
File "hitratioparea_0117.py", line 43, in <module>
cdf = discrete_cdf(d_sorted)
TypeError: __init__() takes exactly 1 argument (2 given)

 

해결 방법

 


import numpy as np
from pylab import *

# Create some test data
dx = 0.01
X  = np.arange(-2, 2, dx)
Y  = exp(-X ** 2)

# Normalize the data to a proper PDF
Y /= (dx * Y).sum()

# Compute the CDF
CY = np.cumsum(Y * dx)

# Plot both
plot(X, Y)
plot(X, CY, 'r--')

show()

여기에 이미지 설명 입력

 

참조 페이지 https://stackoverflow.com/questions/9378420

 

 

반응형

댓글