Notez comment afficher le graphique sur Jupyter à l'aide de la bibliothèque Seaborn.
Dessinez un graphique de série chronologique à l'aide de SEABORN.
sample.py
import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import seaborn as sns
#Définissez un ensemble de données.(La date est datetime.Décrivez en datetime. Noté dans le type de date)
dat = [
[datetime.datetime(2020,1,1),4,10],
[datetime.datetime(2020,1,2),7,7],
[datetime.datetime(2020,1,3),10,4],
[datetime.datetime(2020,1,4),13,2],
[datetime.datetime(2020,1,5),17,1],
[datetime.datetime(2020,1,6),12,4],
[datetime.datetime(2020,1,7),9,3],
[datetime.datetime(2020,1,8),7,8],
[datetime.datetime(2020,1,9),5,9],
[datetime.datetime(2020,1,10),3,12],
]
dat=pd.DataFrame(dat,columns=["DATE","Y","Z"])
dat.set_index("DATE",inplace=True) #Définissez la date affichée sur l'axe horizontal sur l'index du DataFrame.
print(dat)
fig = sns.mpl.pyplot.figure() #Créez un objet pour dessiner le graphique.
ax = fig.add_subplot(111) #Définissez la zone pour afficher le graphique(Nombre de lignes,Le nombre de colonnes,Numéro du graphique cible)
ax.plot(dat['Y'], label='Y',markersize=10,c="blue",marker="o") #Donnez des données et affichez un graphique.
ax.plot(dat['Z'], label='Z',markersize=10,c="red",marker="o") #Donnez des données et affichez un graphique.
ax.legend() #Dessinez une légende
#Paramètres de format de graphique(Définissez la méthode d'affichage de la date sur l'axe horizontal.)
days = mdates.DayLocator(bymonthday=None, interval=2, tz=None) #Axe horizontal: "Tous les jours" est affiché.(Sans cette ligne, la date sera dupliquée)
daysFmt = mdates.DateFormatter('%Y-%m-%d') #Axe horizontal: Format Y-M-Réglez sur D.
ax.xaxis.set_major_locator(days) #Affichez la date sur l'axe horizontal.
ax.xaxis.set_major_formatter(daysFmt) #Affichez la date sur l'axe horizontal.
fig.autofmt_xdate() #La date sur l'axe horizontal est inclinée pour qu'elle soit facile à voir.
#Donnez un nom au graphique
ax.set_xlabel('Date') #Définir le titre de l'axe X
ax.set_ylabel('Y') #Définir le titre de l'axe Y
plt.title(r"TEST",fontname="MS Gothic") #Définissez le titre du graphique. Lors de la spécification du japonais, il est nécessaire de spécifier le nom de la police
#Définir la taille du graphique
fig.set_figheight(10)
fig.set_figwidth(20)
#Définir la plage d'affichage sur l'axe horizontal
ax.set_xlim(datetime.datetime(2020,1,1), datetime.datetime(2020,1,12))
Résultat d'exécution
python
Y Z
DATE
2020-01-01 4 10
2020-01-02 7 7
2020-01-03 10 4
2020-01-04 13 2
2020-01-05 17 1
2020-01-06 12 4
2020-01-07 9 3
2020-01-08 7 8
2020-01-09 5 9
2020-01-10 3 12
sample.py
import seaborn as sns
sns.set_style("whitegrid")
df1 = pd.DataFrame({'X': [1, 2, 3,4,5],'Y': [4, 5.5, 6.2,7.3,7.8]})
sns.regplot('X', 'Y', data=df1,fit_reg=False)
ax.set_yscale("log") #Notez l'axe Y dans le journal.
ax.set_xlim(0, 5) #Définissez la plage de l'axe X.
ax.set_ylim(1, 10) #Définissez la plage de l'axe Y.
référence https://pythondatascience.plavox.info/seaborn/%E6%95%A3%E5%B8%83%E5%9B%B3%E3%83%BB%E5%9B%9E%E5%B8%B0%E3%83%A2%E3%83%87%E3%83%AB
sample.py
import pandas as pd
import numpy as np
#Créez des données pour les tests.(Il génère des nombres aléatoires qui suivent une distribution normale bidimensionnelle.)
mean=[0,0]
cov=[[1,0],[0,10]]
dset=np.random.multivariate_normal(mean,cov,1000) #Générer 1000 données
df=pd.DataFrame(dset,columns=['X','Y'])
#Définir l'arrière-plan sur blanc
sns.set(style="white", color_codes=True)
#Graphique de sortie
sns.jointplot(x="X", y="Y", data=df)
sample.py
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#Créez des données pour les tests.(Il génère des nombres aléatoires qui suivent une distribution normale bidimensionnelle.)
mean=[0,0]
cov=[[1,0],[0,10]]
dset=np.random.multivariate_normal(mean,cov,1000) #Générer 1000 données
df0=pd.DataFrame(dset,columns=['X','Y'])
df1=pd.DataFrame(dset,columns=['X','Y'])
fig,(axis1,axis2)=plt.subplots(1,2,sharey=True) #Créer un emplacement de placement de graphique 1 par 2
sns.regplot('X','Y',df0,ax=axis1)
sns.regplot('X','Y',df0,ax=axis2)
Pour tracer un seul point, utilisez .plot car le replot ne peut pas être utilisé (jeu de données)
sample.py
import numpy as np
import pandas as pd
import seaborn as sns
#Définition d'échantillons de données
dat = [
[1,8],
[4,2],
[7,6],
[4,8],
[20,15],
[3,7]
]
dat1=[[4,4]]
df0 = pd.DataFrame(dat,columns=["X","Y"]) #1er ensemble de données
df1 = pd.DataFrame(dat1,columns=["X","Y"]) #Deuxième jeu de données
ax=sns.regplot('X', 'Y', data=df0,fit_reg=False) #1er ensemble de données
ax.set_xlim(0, 5) #Définissez la plage de l'axe X.
ax.set_ylim(1, 10) #Définissez la plage de l'axe Y.
#Tracez le deuxième ensemble de données.
#Si vous ne tracez qu'un seul point, vous ne pouvez pas utiliser le replot.(base de données).Utilisez l'intrigue.
df1.plot(kind="scatter",x="X", y="Y",s=500,c="yellow",marker="*", alpha=1, linewidths=2,edgecolors="red",ax=ax)
#s est la taille de la marque,alpha est la transparence(0:Transparent,1:不Transparent)
Résultat d'exécution
Description de la fonction de densité du noyau https://www.ie-kau.net/entry/kernel_density_est
/home/sampletest/sample.py
from numpy.random import randn
import seaborn as sns
import numpy as np
dataset=randn(100) #Générez 100 nombres aléatoires qui suivent une distribution uniforme.
sns.kdeplot(dataset)
sns.rugplot(dataset,color='black') #Je trace un ensemble de données.
for bw in np.arange(0.5,2.5,0.5): #Largeur de bande 0.5,1.0,1.5,2.Ecrivez la fonction de densité du noyau en la changeant à 0
sns.kdeplot(dataset,bw=bw,label=bw)
Recommended Posts