# -*- coding: utf-8 -*- """ Created on Thu Mar 12 12:40:01 2020 @author: Johan Rene van Dorp """ import Dist_Library as dl import numpy as np import matplotlib.pyplot as plt data = np.array([6,8,9,10,11,12,14,16,19,24]) data.sort() print(data) n = len(data) F = np.arange(1,n+1)/n print(F) q_level = 0.85 x_q,k,x_k,x_k_plus_1 = dl.empirical_quantile(data,q_level) print(x_k) print(x_q) print(x_k_plus_1) # Parameters for the plots LB_x = 0 UB_x = 25 LB_y = 0 UB_y = 1 data_appended = data F_appended = F data_appended = np.append(0,data_appended) data_appended = np.append(data_appended,30) print(data_appended) F_appended = np.append(0,F_appended) F_appended = np.append(F_appended,1) print(F_appended) plt.rc('font', family='serif', size='10') plt.figure(figsize=(10, 5)) Q_Figure = plt.figure() Q_Figure.set_figwidth(5) Q_Figure.set_figheight(5) Q_Figure.subplots_adjust(hspace=0.4, wspace=0.4) #plt.rcParams['xtick.labelsize'] = 5 #plt.rcParams['ytick.labelsize'] = 5 off_set_x = 6 off_set_y = 0.05 x_lims = (LB_x-off_set_x,UB_x+off_set_x) y_lims = (LB_y-off_set_y,UB_y+off_set_y) Panel = Q_Figure.add_subplot(1,1,1) plt.xlim(x_lims) plt.ylim(y_lims) plt.xlabel('x',size = '10') plt.ylabel('Empirical CDF $\hat{F}(t) = Pr(T \leq t)$',size = '10') plt.axvline(0, lw=1, ls = '-',color = 'lightgray',alpha=0.5) plt.axhline(0, lw=1, ls = '-',color = 'lightgray',alpha=0.5) plt.axhline(1, lw=1, ls = ':',color = 'lightgray',alpha=0.5) plt.scatter(data,F,color = "navy", s = 10,alpha=0.5) plt.plot(data_appended,F_appended,color = "red",lw=1,alpha=0.5) plt.vlines(x_k, 0, k/n, color='black', linestyles='--', lw=1) plt.vlines(x_q, 0, q_level, color='black', linestyles=':', lw=1) plt.vlines(x_k_plus_1, 0, (k+1)/n, color='black', linestyles='--', lw=1) plt.hlines(k/n, 0, x_k, color='black', linestyles='--', lw=1) plt.hlines(q_level, 0, x_q, color='black', linestyles=':', lw=1) plt.hlines((k+1)/n, 0, x_k_plus_1, color='black', linestyles='--', lw=1) text_str = '$x_{(k)}$ =' + str(x_k) plt.text(x_k-1, 0.1,text_str,color = 'red',horizontalalignment = 'right') text_str = '$x_p$ =' + f'{x_q:4.2f}' plt.text(x_q, 0.025,text_str,color = 'blue',horizontalalignment = 'center') text_str = '$p$ =' + f'{q_level:4.2f}' plt.text(-0.25, q_level,text_str,color = 'blue',horizontalalignment = 'right', verticalalignment = 'center') text_str = '$x_{(k+1)}$ =' + str(x_k_plus_1) plt.text(x_k_plus_1+1, 0.1, text_str, color = 'red',horizontalalignment = 'left') Q_Figure.suptitle('Empirical Quantile - Linear Interpolation',size='14') plt.savefig('Empirical_Quantile.png', dpi=300)