Also habe ich versucht, das in Abb. 2 gezeigte CUM zu erstellen. Ich bin mir nicht sicher, ob es richtig ist, daher würde ich es begrüßen, wenn Sie auf Fehler hinweisen könnten.
#Erklärung
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
#Daten erstellen
np.random.seed(19680803)
mu = 200
sigma = 3
x = np.random.normal(mu, sigma, size=100)
#Weisen Sie x die Umkehrung der kumulativen Verteilungsfunktion zu
norm_arr = list()
for no in range(1,len(x)+1):
norm_arr.append(norm.ppf((no)/(len(x)+1))-norm.ppf(1/(len(x)+1)))
norm_arr=norm_arr/max(norm_arr)#Normalisierung
x.sort()#Sortieren Sie x in aufsteigender Reihenfolge
#Ändern Sie die Anzeige der y-Achse
scale =[]
list_axis =[0.0001,0.001,0.01,0.05,0.1,0.2,0.3,0.5,0.7,0.8,0.9,0.95,0.99,0.999,0.9999]
for no in list_axis:
scale.append(norm.ppf(no)-norm.ppf(0.0001))
scale=scale/max(scale)
#Zeichnung
fig, ax = plt.subplots(figsize=(8, 4))
linestyles = '-'
ax.grid(True)
ax.legend(loc='right')
ax.set_title('Cumulative step histograms')
ax.set_xlabel('data')
ax.set_ylabel('Percentage')
plt.yticks(scale,list_axis)
ax.plot(x,norm_arr,label='linear',marker='o',markersize=1.0,linewidth=0.1,linestyle=linestyles)
plt.show()
Bei der Ausführung wird die obige Abbildung 2 unverändert ausgegeben.
Recommended Posts