CUM_plot, das ich oft am Produktionsstandort sehe, ist nicht ins Netz gefallen, also habe ich es mit Python gemacht

  1. Einleitung ============ CUM_plot wird häufig verwendet, wenn eine Fehleranalyse am Produktionsstandort durchgeführt wird. Wenn es sich um eine Normalverteilung handelt, wird sie zu einer geraden Linie, und es ist leicht zu verstehen, ob die Ausreißer oder mehrere Normalverteilungen gemischt sind. Wenn ich versuche, es mit Python zu erstellen, wird das CUM in Abb. 1 angezeigt, das CUM in Abb. 2 jedoch nicht. .. .. Anscheinend wird CUM normalerweise als Abbildung 1 bezeichnet.

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.

  1. Was ist ein CUM-Plot? ============ Abkürzung für kumulative Verteilung. Wenn Sie damit googeln, wird jedoch nur Abbildung 1 angezeigt. .. .. https://ja.wikipedia.org/wiki/%E7%B4%AF%E7%A9%8D%E5%88%86%E5%B8%83%E9%96%A2%E6%95%B0 In der folgenden URL erfahren Sie, wie Sie die CUM in Abbildung 1 erstellen. https://matplotlib.org/3.1.1/gallery/statistics/histogram_cumulative.html
  2. Wie man CUM macht ============ Wenn Sie sich die CUM in Abbildung 2 genau ansehen, scheint die y-Achse eine Normalverteilung abzubilden. Da eine solche Skala in matplotlib jedoch nicht vorhanden ist, habe ich die Skala zwangsweise konvertiert und zugewiesen.
#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

CUM_plot, das ich oft am Produktionsstandort sehe, ist nicht ins Netz gefallen, also habe ich es mit Python gemacht
Lebensspiel mit Python [ich habe es geschafft] (auf Terminal & Tkinter)
Ich konnte das Python-Modul nicht mit VSCODE importieren, aber ich konnte es auf jupyterlab tun, also suchte ich nach der Ursache (2)
Code-Memo, das in Schwierigkeiten war, weil es nicht auf der Website discord.py aufgeführt war
Beim Schreiben in eine CSV-Datei mit Python habe ich einen kleinen Fehler gemacht und den Liefertermin nicht eingehalten
Ich konnte das Python-Modul nicht mit VSCODE importieren, aber auf juoyterlab konnte ich die Ursache finden.
Ich habe mit Python eine App für die Benachrichtigung über Netznachrichten erstellt
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
[Ich habe es mit Python gemacht] Tool für die Stapelausgabe von XML-Daten
[Python] Tensorflow 2.0 unterstützte Python 3.8 nicht, daher die Geschichte des Downgrades von Python
Ich habe etwas mit Python gemacht, das sich JETZT LADEN auf dem Terminal von links nach rechts bewegt
Ich habe versucht, "Asciichart Py" zu verwenden, mit dem mit Python ein schönes Diagramm auf der Konsole gezeichnet werden kann.