#!/usr/bin/env python3 # https://eax.me/approximate-percentile/ import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np dpi = 80 fig = plt.figure(dpi = dpi, figsize = (512 / dpi, 384 / dpi) ) mpl.rcParams.update({'font.size': 10}) sigma = 0.8 mu = np.log(100) vals = [ np.random.lognormal(mu, sigma) for _ in range(0, 100_000) ] rounded_vals = [ round(v) for v in vals ] plt.hist(rounded_vals, bins=range(max(rounded_vals)+2), align='left', color='#0022bb') plt.title('Lognormal Distribution') plt.xlabel('Value') plt.ylabel('Count') plt.grid(True, linestyle='--', alpha=0.7) fig.savefig('lognormal-distribution.png')