[PYTHON] Comment utiliser Seaboan

1. Objet

Notez comment afficher le graphique sur Jupyter à l'aide de la bibliothèque Seaborn.

2. Contenu

2-1 Afficher les données de séries chronologiques.

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
79.JPG

2-2 Affichez les données de la carte de dispersion.

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.

62.JPG

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

2-3 Créez un diagramme de dispersion avec un histogramme.

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)

63.JPG

2-4 Organiser plusieurs graphiques

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)

64.JPG

2-5 Tracer les données à 1 point.

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 76.JPG

3 Méthode de traitement statistique

3-1 Comment écrire une fonction de densité du noyau

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)

68.JPG

Recommended Posts

Comment utiliser Seaboan
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser Qt Designer
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment utiliser Pandas Rolling
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py
Python: comment utiliser pydub
[Python] Comment utiliser checkio
[Aller] Comment utiliser "... (3 périodes)"
Comment faire fonctionner GeoIp2 de Django
[Python] Comment utiliser input ()
Comment utiliser le décorateur
[Introduction] Comment utiliser open3d
Comment utiliser Python lambda
Comment utiliser Jupyter Notebook
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser Google Colaboratory
Comment utiliser les octets Python