CUM_plot, que je vois souvent sur le site de fabrication, n'est pas tombé sur le net, donc je l'ai fait avec python

  1. Introduction ============ CUM_plot est souvent utilisé lors de l'analyse des défauts sur le site de production. S'il s'agit d'une distribution normale, elle devient une ligne droite et il est facile de comprendre si les valeurs aberrantes ou les distributions normales multiples sont mélangées. Lorsque j'essaie de le créer avec python, le CUM de la figure 1 sort, mais le CUM de la figure 2 ne sort pas. .. .. Apparemment, CUM est généralement appelé Figure 1.

J'ai donc essayé de créer le CUM illustré à la Fig.2. Je ne suis pas sûr que ce soit correct, alors je vous serais reconnaissant de bien vouloir signaler des erreurs.

  1. Qu'est-ce que le graphique CUM? ============ Abréviation de distribution cumulative. Cependant, si vous recherchez sur Google avec cela, seule la figure 1 apparaîtra. .. .. https://ja.wikipedia.org/wiki/%E7%B4%AF%E7%A9%8D%E5%88%86%E5%B8%83%E9%96%A2%E6%95%B0 Voir l'URL ci-dessous pour savoir comment créer le CUM dans la figure 1. https://matplotlib.org/3.1.1/gallery/statistics/histogram_cumulative.html
  2. Comment faire CUM ============ Si vous regardez de près le CUM dans la figure 2, l'axe des y semble représenter une distribution normale. Cependant, comme une telle échelle n'existe pas dans matplotlib, j'ai converti de force l'échelle et l'ai affectée.
#Déclaration
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt

#Créer des données
np.random.seed(19680803)
mu = 200
sigma = 3
x = np.random.normal(mu, sigma, size=100)

#Affectez l'inverse de la fonction de distribution cumulative à x
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)#Normalisation
x.sort()#Trier x par ordre croissant

#Changer l'affichage de l'axe y
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)

#dessin
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()

Lorsqu'elle est exécutée, la figure 2 ci-dessus sera sortie telle quelle.

Recommended Posts

CUM_plot, que je vois souvent sur le site de fabrication, n'est pas tombé sur le net, donc je l'ai fait avec python
Jeu de vie avec Python [je l'ai fait] (sur terminal et Tkinter)
Je n'ai pas pu importer le module python avec VSCODE, mais je pouvais le faire sur jupyterlab, j'ai donc recherché la cause (2)
Mémo de code en difficulté car il n'était pas répertorié sur le site discord.py
Lors de l'écriture dans un fichier csv avec python, une histoire que j'ai fait une légère erreur et n'a pas respecté la date de livraison
Je n'ai pas pu importer le module python avec VSCODE, mais sur juoyterlab, j'ai pu trouver la cause.
J'ai créé une application de notification de nouvelles en ligne avec Python
J'ai créé une fonction pour découper l'image de python openCV, alors veuillez l'utiliser.
Ce que j'ai fait pour accueillir le Python2 EOL en toute confiance
[Je l'ai fait avec Python] Outil pour la sortie par lots de données XML
[Python] Tensorflow 2.0 ne supportait pas Python 3.8, donc l'histoire de la rétrogradation de Python
J'ai fait quelque chose avec python qui NOW LOADING se déplace de gauche à droite sur le terminal
J'ai essayé d'utiliser "Asciichart Py" qui peut dessiner un beau graphique sur la console avec Python.