Seaborn-kaavioita määrällisille muuttujille

  • distplot: luokiteltu jakauma histogrammina
  • boxplot: viiden luvun yhteenveto
  • pairplot: hajontakaaviomatriisi
  • jointplot: hajontakaavio + luokitellut jakaumat histogrammeina
  • heatmap: lukuarvojen tehostaminen väreillä
In [1]:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

plt.style.use('seaborn-whitegrid')
In [2]:
tips = sns.load_dataset('tips')
tips.head()
Out[2]:
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4

Distplot

Distplot tekee histogrammin ja estimoi todennäköisyysjakauman, josta data on peräisin.

In [3]:
#Poistan puuttuvat arvot dropna()-funktiolla
sns.distplot(a=tips['total_bill'].dropna(), bins=[0,10,20,30,40,50,60])
Out[3]:
<matplotlib.axes._subplots.AxesSubplot at 0x1dc04927ef0>
In [4]:
sns.distplot(a=tips['tip'].dropna(), bins=[0,2,4,6,8,10])
Out[4]:
<matplotlib.axes._subplots.AxesSubplot at 0x1dc0738ee48>
In [5]:
#Jos rug=True, niin näen tarkemmat jakaumat luokkien sisällä
sns.distplot(a=tips['tip'].dropna(), bins=[0,2,4,6,8,10], kde=False, rug=True)
Out[5]:
<matplotlib.axes._subplots.AxesSubplot at 0x1dc0740fbe0>

Boxplot

Boxplot esittää havainnollisesti viiden luvun yhteenvedon (pienin, alaneljännes, mediaani, yläneljännes, suurin). Muista havainnoista selvästi poikkeavat havainnot esitetään erillisinä pisteinä.

In [6]:
sns.boxplot(x='size', y='tip', data=tips)
Out[6]:
<matplotlib.axes._subplots.AxesSubplot at 0x1dc0748b8d0>
In [7]:
sns.boxplot(x='size', y='tip', hue='sex', data=tips)
Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x1dc0756cc88>

Pairplot

Pairplot esittää muuttujien väliset riippuvuudet hajontakaaviomatriisina.

In [8]:
opintomenestys = pd.read_excel('http://taanila.fi/opintomenestys.xlsx')
opintomenestys.head()
Out[8]:
koehenkilö verbaalinen looginen kielet matematiikka opintomenestys sukupuoli
0 2 26 32 8.2 7 16 Nainen
1 3 29 33 9.6 5 17 Nainen
2 6 28 36 9.2 7 19 Nainen
3 7 23 34 7.2 7 14 Nainen
4 10 29 34 9.7 8 19 Nainen
In [9]:
sns.pairplot(opintomenestys.drop('koehenkilö', axis=1), kind='reg')
Out[9]:
<seaborn.axisgrid.PairGrid at 0x1dc0771abe0>
In [10]:
sns.pairplot(opintomenestys.drop('koehenkilö', axis=1), hue='sukupuoli', kind='reg')
Out[10]:
<seaborn.axisgrid.PairGrid at 0x1dc08313f60>

Jointplot

Jointplot esittää hajontakaavion ja molempien muuttujien jakaumat histogrammeina.

In [11]:
sns.jointplot(x='kielet', y='opintomenestys', data=opintomenestys, kind='reg')
Out[11]:
<seaborn.axisgrid.JointGrid at 0x1dc0a3113c8>
In [12]:
sns.jointplot(x='matematiikka', y='opintomenestys', data=opintomenestys, kind='reg')
Out[12]:
<seaborn.axisgrid.JointGrid at 0x1dc0ac17518>

Heatmap

Heatmap korostaa dataframen lukuja väreillä.

In [13]:
korrelaatiot = opintomenestys.drop('koehenkilö', axis=1).corr()
sns.heatmap(data=korrelaatiot, annot=True)
Out[13]:
<matplotlib.axes._subplots.AxesSubplot at 0x1dc0acd7198>