example.py
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set() #Il semble que la figure puisse être magnifiquement dessinée, je l'utilise toujours
amp = 100 #amplitude
frequency = 0.02 #la fréquence
offset = 1000 #décalage
t = np.linspace(0,100,1000)
y_ = amp*np.sin(2*np.pi*frequency*t)+offset #Valeur théorique=Courbe de récurrence sin
y = np.random.poisson(y_) #Valeur observée=Avec erreur péché
###Principale###
dis = abs( y_ - y )/ y_.max() #La différence entre la valeur théorique et la valeur observée est de 0.0~1.Échelle à une valeur de 0
color_list=[ [1-9*i,0,i*9,i*5] for i in dis ] #Spécifiez la couleur avec la valeur RVB
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')
Premièrement, en ce qui concerne les données, en substituant à chaque fois la valeur de l'onde sinueuse à np.random.poisson (y_)
,
** y ** est une onde sinusoïdale qui suit une distribution de poisson avec une erreur moyenne ** y_ **. Par conséquent, une grande valeur a une grande erreur et une petite valeur a une petite erreur.
Comme vous pouvez le voir, la gradation principale utilise cette fois une instruction for pour spécifier la couleur. Dans matplotlib, la couleur peut être spécifiée par [R, V, B, obscurité] = [r, g, b, c]. Cependant, r, g, b, c prennent des valeurs de 0,0 à 1,0.
En utilisant ce mécanisme, les quatre règles ont été calculées pour que la couleur soit plus claire sur de courtes distances et plus foncée sur de longues distances.
Dans cet exemple, il est rouge clair sur de courtes distances et bleu foncé sur de longues distances.
--La valeur RVB doit être comprise entre 0,0 et 1,0, le coefficient doit donc être ajusté à cette plage.
Avec cette spécification de couleur, la distance par rapport à la courbe de régression peut être visualisée sur d'autres figures. Prenons un cas où le code précédent est légèrement modifié et l'erreur augmente avec le temps. (Le code sera décrit plus tard) Compte tenu des chiffres d'axe horizontal ** t **, d'axe vertical ** y **, d'axe horizontal ** y_ **, d'axe vertical ** y **,
À partir de la figure de gauche, l'augmentation de la distance (erreur) peut être confirmée en un coup d'œil. Sur la figure de droite, on peut voir que la distance entre ** y ** et ** y_ ** est en corrélation avec ** y_ **. De cette manière, on peut s'attendre à ce que la compréhension des données soit encore approfondie en modifiant l'axe de traçage. Plus il y a de paramètres qui déterminent la valeur observée ** y **, plus les perspectives peuvent être appréciées.
example2.py
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
amp=100 #amplitude
frequency=0.02 #la fréquence
offset=1000 #biais
t=np.linspace(0,100,1000)
y_=amp*np.sin(2*np.pi*frequency*t)+offset
y=np.random.poisson(y_+2.6*t) ###Changer de ligne###
dis=abs(y_-y)/y_.max()
color_list=[[1-3*i,0,3*i,i] for i in dis] ###Changer de ligne###
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')
Comparaison du temps et de la valeur théorique ** y_ ** La profondeur de couleur de l'emballage est probablement due à la forte densité de points.
Recommended Posts