[PYTHON] Wie benutzt man Seaboan?

1. Zweck

Notieren Sie sich, wie das Diagramm in Jupyter mithilfe der Bibliothek Seaborn angezeigt wird.

2. Inhalt

2-1 Zeitreihendaten anzeigen.

Zeichnen Sie mit SEABORN ein Zeitreihendiagramm.

sample.py


import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import seaborn as sns

#Definieren Sie einen Datensatz.(Das Datum ist Datum / Uhrzeit.Beschreiben Sie in datetime. Notiert im Datumstyp)
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) #Stellen Sie das auf der horizontalen Achse angezeigte Datum auf den Index des DataFrame ein.
print(dat)


fig = sns.mpl.pyplot.figure() #Erstellen Sie ein Objekt, um das Diagramm zu zeichnen.
ax = fig.add_subplot(111) #Stellen Sie den Bereich ein, in dem das Diagramm angezeigt werden soll(Anzahl der Zeilen,Anzahl der Spalten,Zieldiagrammnummer)
ax.plot(dat['Y'], label='Y',markersize=10,c="blue",marker="o") #Geben Sie Daten ein und zeigen Sie ein Diagramm an.
ax.plot(dat['Z'], label='Z',markersize=10,c="red",marker="o") #Geben Sie Daten ein und zeigen Sie ein Diagramm an.
ax.legend() #Zeichne eine Legende

#Einstellungen für das Grafikformat(Stellen Sie die Datumsanzeigemethode auf der horizontalen Achse ein.)
days    = mdates.DayLocator(bymonthday=None, interval=2, tz=None)  #Horizontale Achse: "Täglich" wird angezeigt.(Ohne diese Zeile wird das Datum dupliziert)
daysFmt = mdates.DateFormatter('%Y-%m-%d') #Horizontale Achse: Format Y.-M-Auf D setzen.
ax.xaxis.set_major_locator(days) #Zeigen Sie das Datum auf der horizontalen Achse an.
ax.xaxis.set_major_formatter(daysFmt) #Zeigen Sie das Datum auf der horizontalen Achse an.
fig.autofmt_xdate() #Das Datum auf der horizontalen Achse ist geneigt, damit es leicht zu sehen ist.

#Geben Sie dem Diagramm einen Namen
ax.set_xlabel('Date') #Stellen Sie den Titel der X-Achse ein
ax.set_ylabel('Y') #Stellen Sie den Titel der Y-Achse ein
plt.title(r"TEST",fontname="MS Gothic")  #Legen Sie den Titel des Diagramms fest. Bei der Angabe von Japanisch muss der Schriftname angegeben werden
#Stellen Sie die Größe des Diagramms ein
fig.set_figheight(10)
fig.set_figwidth(20)
#Stellen Sie den Anzeigebereich auf der horizontalen Achse ein
ax.set_xlim(datetime.datetime(2020,1,1), datetime.datetime(2020,1,12)) 



Ausführungsergebnis

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 Zeigen Sie die Streukartendaten an.

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") #Notieren Sie die Y-Achse im Protokoll.
ax.set_xlim(0, 5)    #Stellen Sie den Bereich der X-Achse ein.
ax.set_ylim(1, 10)   #Stellen Sie den Bereich der Y-Achse ein.

62.JPG

Referenz 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 Erstellen Sie ein Streudiagramm mit einem Histogramm.

sample.py


import pandas as pd
import numpy as np

#Erstellen Sie Daten zum Testen.(Es werden Zufallszahlen generiert, die einer zweidimensionalen Normalverteilung folgen.)
mean=[0,0]
cov=[[1,0],[0,10]]
dset=np.random.multivariate_normal(mean,cov,1000) #Generieren Sie 1000 Daten
df=pd.DataFrame(dset,columns=['X','Y'])


#Stellen Sie den Hintergrund auf Weiß ein
sns.set(style="white", color_codes=True)

#Ausgabediagramm
sns.jointplot(x="X", y="Y", data=df)

63.JPG

2-4 Ordnen Sie mehrere Diagramme an

sample.py


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

#Erstellen Sie Daten zum Testen.(Es werden Zufallszahlen generiert, die einer zweidimensionalen Normalverteilung folgen.)
mean=[0,0]
cov=[[1,0],[0,10]]
dset=np.random.multivariate_normal(mean,cov,1000) #Generieren Sie 1000 Daten
df0=pd.DataFrame(dset,columns=['X','Y'])
df1=pd.DataFrame(dset,columns=['X','Y'])

fig,(axis1,axis2)=plt.subplots(1,2,sharey=True) #Erstellen Sie einen 1-mal-2-Diagrammplatzierungsort
sns.regplot('X','Y',df0,ax=axis1)
sns.regplot('X','Y',df0,ax=axis2)

64.JPG

2-5 Zeichnen Sie 1-Punkt-Daten.

Verwenden Sie zum Zeichnen nur eines Punktes .plot, da das Replot nicht verwendet werden kann (Datensatz).

sample.py


import numpy as np
import pandas as pd
import seaborn as sns

#Definition von Beispieldaten
dat = [
    [1,8],
    [4,2],
    [7,6],
    [4,8],
    [20,15],
    [3,7]
]

dat1=[[4,4]]

df0 = pd.DataFrame(dat,columns=["X","Y"]) #1. Datensatz
df1 = pd.DataFrame(dat1,columns=["X","Y"]) #Zweiter Datensatz


ax=sns.regplot('X', 'Y', data=df0,fit_reg=False)  #1. Datensatz
ax.set_xlim(0, 5)    #Stellen Sie den Bereich der X-Achse ein.
ax.set_ylim(1, 10)   #Stellen Sie den Bereich der Y-Achse ein.


#Zeichnen Sie den zweiten Datensatz.
#Wenn Sie nur einen Punkt zeichnen, können Sie Replot nicht verwenden.(Datensatz).Plot verwenden.
df1.plot(kind="scatter",x="X", y="Y",s=500,c="yellow",marker="*", alpha=1, linewidths=2,edgecolors="red",ax=ax) 
#s ist die Größe der Marke,Alpha ist Transparenz(0:Transparent,1:不Transparent)

Ausführungsergebnis 76.JPG

3 Statistische Verarbeitungsmethode

3-1 So schreiben Sie eine Kerneldichtefunktion

Beschreibung der Kerneldichtefunktion 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) #Generieren Sie 100 Zufallszahlen, die einer gleichmäßigen Verteilung folgen.
sns.kdeplot(dataset)

sns.rugplot(dataset,color='black') #Ich zeichne einen Datensatz.
for bw in np.arange(0.5,2.5,0.5): #Bandbreite 0.5,1.0,1.5,2.Schreiben Sie die Kerneldichtefunktion, indem Sie sie auf 0 ändern
    sns.kdeplot(dataset,bw=bw,label=bw)

68.JPG

Recommended Posts

Wie benutzt man Seaboan?
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Verwendung von Qt Designer
Verwendung der Suche sortiert
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verstehen Sie, wie man Django-Filter verwendet
Verwendung des Generators
[Python] Verwendung von Liste 1
Verwendung von FastAPI ③ OpenAPI
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie man Pandas Rolling benutzt
[Hinweis] Verwendung von virtualenv
Verwendung von Redispy-Wörterbüchern
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
[Go] Verwendung von "... (3 Perioden)"
So bedienen Sie GeoIp2 von Django
[Python] Verwendung von input ()
Wie benutzt man den Dekorateur?
[Einführung] Verwendung von open3d
Wie benutzt man Python Lambda?
So verwenden Sie Jupyter Notebook
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
So verwenden Sie Google Colaboratory
Verwendung von Python-Bytes