example.py
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set() #Es scheint, dass die Figur wunderschön gezeichnet werden kann, ich benutze sie immer
amp = 100 #Amplitude
frequency = 0.02 #Frequenz
offset = 1000 #Versatz
t = np.linspace(0,100,1000)
y_ = amp*np.sin(2*np.pi*frequency*t)+offset #Theoretischer Wert=Wiederholungskurve sin
y = np.random.poisson(y_) #Beobachteter Wert=Mit Irrtum Sünde
###Maine###
dis = abs( y_ - y )/ y_.max() #Die Differenz zwischen dem theoretischen Wert und dem beobachteten Wert beträgt 0.0~1.Skalieren Sie auf einen Wert von 0
color_list=[ [1-9*i,0,i*9,i*5] for i in dis ] #Geben Sie die Farbe mit dem RGB-Wert an
f = plt.figure(figsize = (12,6))
f.add_subplot(121)
plt.scatter(t,y_)
plt.xlabel('t')
plt.ylabel('y')
f.add_subplot(122)
plt.scatter(t,y,color = color_list)
plt.xlabel('t')
plt.ylabel('y')
Erstens, in Bezug auf die Daten, indem der Wert der Sinuswelle zu jedem Zeitpunkt in "np.random.poisson (y_)" eingesetzt wird, ** y ** ist eine Sinuswelle, die einer Poissonverteilung mit einem durchschnittlichen ** y_ ** -Fehler folgt. Daher hat ein großer Wert einen großen Fehler und ein kleiner Wert einen kleinen Fehler. Wie Sie sehen können, verwendet die Hauptabstufung dieses Mal eine for-Anweisung, um die Farbe anzugeben. In matplotlib kann die Farbe durch [R, G, B, Dunkelheit] = [r, g, b, c] angegeben werden. R, g, b, c nehmen jedoch Werte von 0,0 bis 1,0 an. Unter Verwendung dieses Mechanismus wurden die vier Regeln so berechnet, dass die Farbe auf kurzen Entfernungen heller und auf langen Entfernungen dunkler wird. In diesem Beispiel ist es auf kurzen Entfernungen hellrot und auf langen Entfernungen dunkelblau.
Mit dieser Farbspezifikation kann der Abstand von der Regressionskurve in anderen Figuren dargestellt werden. Betrachten wir einen Fall, in dem der vorherige Code ein wenig geändert wird und der Fehler mit der Zeit zunimmt. (Code wird später beschrieben) Betrachtet man die Figuren der horizontalen Achse ** t **, der vertikalen Achse ** y **, der horizontalen Achse ** y_ **, der vertikalen Achse ** y **,
Aus der Abbildung links kann die Vergrößerung der Entfernung (Fehler) auf einen Blick bestätigt werden. Aus der Abbildung rechts ist ersichtlich, dass der Abstand zwischen ** y ** und ** y_ ** mit ** y_ ** korreliert. Auf diese Weise ist zu erwarten, dass das Verständnis der Daten durch Ändern der Plotachse weiter vertieft wird. Je mehr Parameter den beobachteten Wert ** y ** bestimmen, desto mehr verschiedene Perspektiven können genossen werden.
example2.py
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
amp=100 #Amplitude
frequency=0.02 #Frequenz
offset=1000 #vorspannen
t=np.linspace(0,100,1000)
y_=amp*np.sin(2*np.pi*frequency*t)+offset
y=np.random.poisson(y_+2.6*t) ###Zeile ändern###
dis=abs(y_-y)/y_.max()
color_list=[[1-3*i,0,3*i,i] for i in dis] ###Zeile ändern###
f=plt.figure(figsize=(12,6))
f.add_subplot(121)
plt.scatter(t,y,color=color_list)
plt.xlabel('t')
plt.ylabel('y')
f.add_subplot(122)
plt.scatter(y_,y,color=color_list)
plt.xlabel('y_')
plt.ylabel('y')
Vergleich von Zeit und theoretischem Wert ** y_ ** Die Farbtiefe der Umhüllung ist wahrscheinlich auf die hohe Punktdichte zurückzuführen.
Recommended Posts