#%% import random from math import log import matplotlib.pyplot as plt class PoissonProcess(): def __init__(self, **kwargs): self.lam = kwargs.get("lam", 5) # rate self.size = kwargs.get("size", 100) def generate(self): _time = 0 events = [] for i in range(self.size): p = random.random() _interval = - log(1-p) / self.lam _time = _time + _interval events.append(_time) return events #1 (events) poi = PoissonProcess(lam = 5).generate() print(poi) #matplotlib: x=index, y=poi[index] plt.plot(range(100),poi) #2 (points) import numpy as np poi = np.random.poisson(5,100) plt.plot(poi) plt.show() #%%