Seaborn - Panduan Cepat

Di dunia Analytics, cara terbaik untuk mendapatkan wawasan adalah dengan memvisualisasikan data. Data dapat divisualisasikan dengan merepresentasikannya sebagai plot yang mudah dipahami, dieksplorasi, dan dipahami. Data semacam itu membantu menarik perhatian elemen kunci.

Untuk menganalisis sekumpulan data menggunakan Python, kami menggunakan Matplotlib, pustaka plotting 2D yang diimplementasikan secara luas. Demikian juga, Seaborn adalah pustaka visualisasi dengan Python. Itu dibangun di atas Matplotlib.

Seaborn Vs Matplotlib

Diringkas bahwa jika Matplotlib "mencoba membuat hal-hal mudah menjadi mudah dan hal-hal sulit menjadi mungkin", Seaborn mencoba untuk membuat serangkaian hal-hal sulit yang terdefinisi dengan baik juga menjadi mudah. ​​”

Seaborn membantu menyelesaikan dua masalah utama yang dihadapi oleh Matplotlib; masalahnya adalah -

  • Parameter Matplotlib default
  • Bekerja dengan bingkai data

Saat Seaborn memuji dan memperluas Matplotlib, kurva pembelajarannya cukup bertahap. Jika Anda mengenal Matplotlib, Anda sudah setengah jalan melalui Seaborn.

Fitur Penting Seaborn

Seaborn dibangun di atas pustaka visualisasi inti Python Matplotlib. Ini dimaksudkan sebagai pelengkap, dan bukan pengganti. Namun, Seaborn hadir dengan beberapa fitur yang sangat penting. Mari kita lihat beberapa di antaranya di sini. Fitur membantu dalam -

  • Dibangun pada tema untuk menata grafis matplotlib
  • Memvisualisasikan data univariat dan bivariat
  • Menyesuaikan dan memvisualisasikan model regresi linier
  • Merencanakan data deret waktu statistik
  • Seaborn bekerja dengan baik dengan struktur data NumPy dan Pandas
  • Muncul dengan tema bawaan untuk menata grafis Matplotlib

Dalam kebanyakan kasus, Anda masih akan menggunakan Matplotlib untuk pembuatan plot sederhana. Pengetahuan tentang Matplotlib direkomendasikan untuk mengubah plot default Seaborn.

Dalam bab ini, kita akan membahas pengaturan lingkungan untuk Seaborn. Mari kita mulai dengan penginstalan dan memahami cara memulai saat kita melanjutkan.

Menginstal Seaborn dan memulai

Di bagian ini, kami akan memahami langkah-langkah yang terlibat dalam pemasangan Seaborn.

Menggunakan Pip Installer

Untuk menginstal rilis terbaru Seaborn, Anda dapat menggunakan pip -

pip install seaborn

Untuk Windows, Linux & Mac menggunakan Anaconda

Anaconda (dari https://www.anaconda.com/adalah distribusi Python gratis untuk tumpukan SciPy. Ini juga tersedia untuk Linux dan Mac.

Dimungkinkan juga untuk menginstal versi rilis menggunakan conda -

conda install seaborn

Untuk menginstal versi pengembangan Seaborn langsung dari github

https://github.com/mwaskom/seaborn"

Dependensi

Pertimbangkan dependensi Seaborn berikut -

  • Python 2.7 atau 3.4+
  • numpy
  • scipy
  • pandas
  • matplotlib

Pada bab ini, kita akan membahas cara mengimpor Set Data dan Perpustakaan. Mari kita mulai dengan memahami cara mengimpor perpustakaan.

Mengimpor Perpustakaan

Mari kita mulai dengan mengimpor Pandas, yang merupakan pustaka yang bagus untuk mengelola kumpulan data relasional (format tabel). Seaborn berguna saat berhadapan dengan DataFrames, yang merupakan struktur data yang paling banyak digunakan untuk analisis data.

Perintah berikut akan membantu Anda mengimpor Pandas -

# Pandas for managing datasets
import pandas as pd

Sekarang, mari kita impor pustaka Matplotlib, yang membantu kita menyesuaikan plot kita.

# Matplotlib for additional customization
from matplotlib import pyplot as plt

Kami akan mengimpor perpustakaan Seaborn dengan perintah berikut -

# Seaborn for plotting and styling
import seaborn as sb

Mengimpor Set Data

Kami telah mengimpor perpustakaan yang diperlukan. Di bagian ini, kita akan memahami cara mengimpor dataset yang diperlukan.

Seaborn hadir dengan beberapa kumpulan data penting di perpustakaan. Saat Seaborn diinstal, kumpulan data diunduh secara otomatis.

Anda dapat menggunakan salah satu dari kumpulan data ini untuk pembelajaran Anda. Dengan bantuan fungsi berikut, Anda dapat memuat kumpulan data yang diperlukan

load_dataset()

Mengimpor Data sebagai Pandas DataFrame

Di bagian ini, kami akan mengimpor kumpulan data. Dataset ini dimuat sebagai Pandas DataFrame secara default. Jika ada fungsi apa pun di Pandas DataFrame, itu berfungsi pada DataFrame ini.

Baris kode berikut akan membantu Anda mengimpor dataset -

# Seaborn for plotting and styling
import seaborn as sb
df = sb.load_dataset('tips')
print df.head()

Baris kode di atas akan menghasilkan output berikut -

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

Untuk melihat semua kumpulan data yang tersedia di perpustakaan Seaborn, Anda bisa menggunakan perintah berikut dengan get_dataset_names() berfungsi seperti yang ditunjukkan di bawah ini -

import seaborn as sb
print sb.get_dataset_names()

Baris kode di atas akan mengembalikan daftar set data yang tersedia sebagai keluaran berikut

[u'anscombe', u'attention', u'brain_networks', u'car_crashes', u'dots', 
u'exercise', u'flights', u'fmri', u'gammas', u'iris', u'planets', u'tips', 
u'titanic']

DataFramesmenyimpan data dalam bentuk grid persegi panjang dimana data dapat dilihat dengan mudah. Setiap baris dari kisi persegi panjang berisi nilai dari sebuah contoh, dan setiap kolom dari kisi adalah vektor yang menyimpan data untuk variabel tertentu. Ini berarti baris DataFrame tidak perlu berisi, nilai dengan tipe data yang sama, bisa berupa angka, karakter, logika, dll. DataFrames untuk Python hadir dengan pustaka Pandas, dan mereka didefinisikan sebagai struktur data berlabel dua dimensi dengan jenis kolom yang berpotensi berbeda.

Untuk detail lebih lanjut tentang DataFrames, kunjungi tutorial kami tentang panda.

Memvisualisasikan data adalah satu langkah dan selanjutnya membuat data yang divisualisasikan lebih menyenangkan adalah langkah berikutnya. Visualisasi memainkan peran penting dalam mengkomunikasikan wawasan kuantitatif kepada audiens untuk menarik perhatian mereka.

Estetika berarti seperangkat prinsip yang berkaitan dengan sifat dan apresiasi keindahan, terutama dalam seni. Visualisasi adalah seni merepresentasikan data dengan cara yang efektif dan termudah.

Pustaka Matplotlib sangat mendukung penyesuaian, tetapi mengetahui pengaturan apa yang harus diubah untuk mencapai plot yang menarik dan diantisipasi adalah hal yang harus diperhatikan untuk memanfaatkannya. Tidak seperti Matplotlib, Seaborn hadir dengan tema yang disesuaikan dan antarmuka tingkat tinggi untuk menyesuaikan dan mengontrol tampilan figur Matplotlib.

Contoh

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5): 
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sinplot()
plt.show()

Beginilah tampilan plot dengan default Matplotlib -

Untuk mengubah plot yang sama ke default Seaborn, gunakan set() fungsi -

Contoh

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set()
sinplot()
plt.show()

Keluaran

Dua gambar di atas menunjukkan perbedaan dalam plot Matplotlib dan Seaborn default. Representasi datanya sama, tetapi gaya representasi bervariasi pada keduanya.

Pada dasarnya, Seaborn membagi parameter Matplotlib menjadi dua grup-

  • Gaya plot
  • Skala plot

Gaya Gambar Seaborn

Antarmuka untuk memanipulasi gaya adalah set_style(). Dengan menggunakan fungsi ini, Anda dapat mengatur tema plot. Sesuai versi terbaru yang diperbarui, di bawah ini adalah lima tema yang tersedia.

  • Darkgrid
  • Whitegrid
  • Dark
  • White
  • Ticks

Mari kita coba menerapkan tema dari daftar yang disebutkan di atas. Tema default plot adalahdarkgrid yang telah kita lihat pada contoh sebelumnya.

Contoh

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("whitegrid")
sinplot()
plt.show()

Keluaran

Perbedaan antara dua plot di atas adalah warna latar belakang

Menghapus Sumbu Duri

Dalam tema putih dan centang, kita dapat menghapus duri sumbu atas dan kanan menggunakan despine() fungsi.

Contoh

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sinplot()
sb.despine()
plt.show()

Keluaran

Dalam plot biasa, kami hanya menggunakan sumbu kiri dan bawah. Menggunakandespine() fungsi, kita dapat menghindari duri sumbu kanan dan atas yang tidak perlu, yang tidak didukung di Matplotlib.

Mengganti Elemen

Jika Anda ingin menyesuaikan gaya Seaborn, Anda dapat meneruskan kamus parameter ke set_style() fungsi. Parameter yang tersedia dilihat menggunakanaxes_style() fungsi.

Contoh

import seaborn as sb
print sb.axes_style

Keluaran

{'axes.axisbelow'     : False,
'axes.edgecolor'      : 'white',
'axes.facecolor'      : '#EAEAF2',
'axes.grid'           : True,
'axes.labelcolor'     : '.15',
'axes.linewidth'      : 0.0,
'figure.facecolor'    : 'white',
'font.family'         : [u'sans-serif'],
'font.sans-serif'     : [u'Arial', u'Liberation  
                        Sans', u'Bitstream Vera Sans', u'sans-serif'],
'grid.color'          : 'white',
'grid.linestyle'      : u'-',
'image.cmap'          : u'Greys',
'legend.frameon'      : False,
'legend.numpoints'    : 1,
'legend.scatterpoints': 1,
'lines.solid_capstyle': u'round',
'text.color'          : '.15',
'xtick.color'         : '.15',
'xtick.direction'     : u'out',
'xtick.major.size'    : 0.0,
'xtick.minor.size'    : 0.0,
'ytick.color'         : '.15',
'ytick.direction'     : u'out',
'ytick.major.size'    : 0.0,
'ytick.minor.size'    : 0.0}

Mengubah nilai dari salah satu parameter akan mengubah gaya plot.

Contoh

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()

Keluaran

Elemen Plot Skala

Kami juga memiliki kontrol pada elemen plot dan dapat mengontrol skala plot menggunakan set_context()fungsi. Kami memiliki empat templat preset untuk konteks, berdasarkan ukuran relatif, konteksnya dinamai sebagai berikut

  • Paper
  • Notebook
  • Talk
  • Poster

Secara default, konteks diatur ke buku catatan; dan digunakan di plot di atas.

Contoh

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()

Keluaran

Ukuran keluaran plot sebenarnya lebih besar jika dibandingkan dengan plot di atas.

Note - Karena penskalaan gambar di halaman web kami, Anda mungkin melewatkan perbedaan sebenarnya di plot contoh kami.

Warna memainkan peran penting daripada aspek lain dalam visualisasi. Saat digunakan secara efektif, warna menambah nilai lebih pada plot. Palet berarti permukaan datar tempat pelukis mengatur dan mencampur cat.

Membangun Palet Warna

Seaborn menyediakan fungsi yang disebut color_palette(), yang dapat digunakan untuk memberi warna pada plot dan menambah nilai estetika.

Pemakaian

seaborn.color_palette(palette = None, n_colors = None, desat = None)

Parameter

Tabel berikut mencantumkan parameter untuk membangun palet warna -

Sr.No. Palatte & Deskripsi
1

n_colors

Jumlah warna di palet. Jika Tidak Ada, defaultnya akan bergantung pada bagaimana palet ditentukan. Secara default, nilain_colors adalah 6 warna.

2

desat

Proporsi untuk menghilangkan saturasi setiap warna.

Kembali

Return mengacu pada daftar tupel RGB. Berikut adalah palet Seaborn yang tersedia -

  • Deep
  • Muted
  • Bright
  • Pastel
  • Dark
  • Colorblind

Selain itu, Anda juga dapat membuat palet baru

Sulit untuk memutuskan palet mana yang harus digunakan untuk kumpulan data tertentu tanpa mengetahui karakteristik datanya. Menyadari hal itu, kami akan mengklasifikasikan berbagai cara untuk menggunakancolor_palette() jenis -

  • qualitative
  • sequential
  • diverging

Kami memiliki fungsi lain seaborn.palplot()yang berhubungan dengan palet warna. Fungsi ini memplot palet warna sebagai larik horizontal. Kami akan tahu lebih banyak tentangseaborn.palplot() dalam contoh yang akan datang.

Palet Warna Kualitatif

Palet kualitatif atau kategorikal paling cocok untuk memplot data kategorikal.

Contoh

from matplotlib import pyplot as plt
import seaborn as sb
current_palette = sb.color_palette()
sb.palplot(current_palette)
plt.show()

Keluaran

Kami belum mengirimkan parameter apa pun di color_palette();secara default, kami melihat 6 warna. Anda dapat melihat jumlah warna yang diinginkan dengan meneruskan nilai ken_colorsparameter. Di sinipalplot() digunakan untuk memplot larik warna secara horizontal.

Palet Warna Berurutan

Plot sekuensial cocok untuk mengekspresikan distribusi data mulai dari nilai relatif yang lebih rendah hingga nilai yang lebih tinggi dalam suatu rentang.

Menambahkan karakter tambahan 'ke warna yang diteruskan ke parameter warna akan memplot plot Berurutan.

Contoh

from matplotlib import pyplot as plt
import seaborn as sb
current_palette = sb.color_palette()
sb.palplot(sb.color_palette("Greens"))
plt.show()

Note −Kita perlu menambahkan 's' ke parameter seperti 'Hijau' pada contoh di atas.

Palet Warna Divergen

Palet divergen menggunakan dua warna berbeda. Setiap warna mewakili variasi nilai yang berkisar dari titik yang sama di kedua arah.

Asumsikan memplot data mulai dari -1 hingga 1. Nilai dari -1 hingga 0 menggunakan satu warna dan 0 hingga +1 menggunakan warna lain.

Secara default, nilai dipusatkan dari nol. Anda dapat mengontrolnya dengan pusat parameter dengan meneruskan nilai.

Contoh

from matplotlib import pyplot as plt
import seaborn as sb
current_palette = sb.color_palette()
sb.palplot(sb.color_palette("BrBG", 7))
plt.show()

Keluaran

Mengatur Palet Warna Default

Fungsinya color_palette() memiliki rekan yang dipanggil set_palette()Hubungan di antara mereka mirip dengan pasangan yang tercakup dalam bab estetika. Argumennya sama untuk keduanyaset_palette() dan color_palette(), tetapi parameter Matplotlib default diubah sehingga palet digunakan untuk semua plot.

Contoh

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

import seaborn as sb
sb.set_style("white")
sb.set_palette("husl")
sinplot()
plt.show()

Keluaran

Merencanakan Distribusi Univariat

Distribusi data adalah hal terpenting yang perlu kita pahami saat menganalisis data. Di sini, kita akan melihat bagaimana tumbuhan laut membantu kita dalam memahami distribusi data univariat.

Fungsi distplot()menyediakan cara yang paling nyaman untuk melihat sekilas distribusi univariat. Fungsi ini akan memplot histogram yang sesuai dengan estimasi kepadatan kernel dari data tersebut.

Pemakaian

seaborn.distplot()

Parameter

Tabel berikut mencantumkan parameter dan deskripsinya -

Sr.No. Parameter & Deskripsi
1

data

Seri, larik 1d atau daftar

2

bins

Spesifikasi tempat sampah hist

3

hist

bool

4

kde

bool

Ini adalah parameter dasar dan penting untuk diperhatikan.

Histogram merepresentasikan distribusi data dengan membentuk bins di sepanjang rentang data dan kemudian menggambar batang untuk menunjukkan jumlah observasi yang termasuk dalam setiap nampan.

Seaborn hadir dengan beberapa kumpulan data dan kami telah menggunakan beberapa kumpulan data di bab-bab sebelumnya. Kami telah belajar bagaimana memuat dataset dan bagaimana mencari daftar dataset yang tersedia.

Seaborn hadir dengan beberapa kumpulan data dan kami telah menggunakan beberapa kumpulan data di bab-bab sebelumnya. Kami telah belajar bagaimana memuat dataset dan bagaimana mencari daftar dataset yang tersedia.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'],kde = False)
plt.show()

Keluaran

Sini, kdebendera disetel ke False. Akibatnya representasi plot estimasi kernel akan dihapus dan hanya histogram yang diplot.

Kernel Density Estimation (KDE) adalah cara untuk memperkirakan fungsi kepadatan probabilitas dari variabel acak kontinu. Ini digunakan untuk analisis non-parametrik.

Mengatur hist tandai menjadi False in distplot akan menghasilkan plot estimasi kepadatan kernel.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'],hist=False)
plt.show()

Keluaran

Distribusi Parametrik Pemasangan

distplot() digunakan untuk memvisualisasikan distribusi parametrik dari kumpulan data.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.distplot(df['petal_length'])
plt.show()

Keluaran

Merencanakan Distribusi Bivariat

Distribusi Bivariat digunakan untuk mengetahui hubungan antara dua variabel. Ini terutama berkaitan dengan hubungan antara dua variabel dan bagaimana satu variabel berperilaku terhadap yang lain.

Cara terbaik untuk menganalisis Distribusi Bivariat di seaborn adalah dengan menggunakan jointplot() fungsi.

Jointplot membuat gambar multi panel yang memproyeksikan hubungan bivariat antara dua variabel dan juga distribusi univariat dari setiap variabel pada sumbu terpisah.

Plot Sebar

Plot sebar adalah cara paling mudah untuk memvisualisasikan distribusi di mana setiap pengamatan direpresentasikan dalam plot dua dimensi melalui sumbu x dan y.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df)
plt.show()

Keluaran

Gambar di atas menunjukkan hubungan antara petal_length dan petal_widthdalam data Iris. Tren dalam plot mengatakan bahwa korelasi positif ada antara variabel yang diteliti.

Hexbin Plot

Hexagonal binning digunakan dalam analisis data bivariat ketika data memiliki kepadatan yang jarang, yaitu ketika data sangat tersebar dan sulit untuk dianalisis melalui sebar.

Parameter tambahan yang disebut 'jenis' dan nilai 'hex' memplot plot hexbin.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex')
plt.show()

Estimasi Densitas Kernel

Estimasi kepadatan kernel adalah cara non-parametrik untuk memperkirakan distribusi variabel. Di dasar laut, kita bisa memplot kde menggunakanjointplot().

Berikan nilai 'kde' ke jenis parameter untuk memplot plot kernel.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex')
plt.show()

Keluaran

Kumpulan data dalam studi real-time mengandung banyak variabel. Dalam kasus seperti itu, hubungan antara setiap variabel harus dianalisis. Merencanakan Distribusi Bivariat untuk (n, 2) kombinasi akan menjadi proses yang sangat kompleks dan memakan waktu.

Untuk memplot beberapa distribusi bivariat berpasangan dalam kumpulan data, Anda dapat menggunakan pairplot()fungsi. Ini menunjukkan hubungan untuk (n, 2) kombinasi variabel dalam DataFrame sebagai matriks plot dan plot diagonal adalah plot univariat.

Sumbu

Di bagian ini, kita akan mempelajari apa itu Sumbu, penggunaannya, parameternya, dan sebagainya.

Pemakaian

seaborn.pairplot(data,…)

Parameter

Tabel berikut mencantumkan parameter untuk Sumbu -

Sr.No. Parameter & Deskripsi
1

data

Dataframe

2

hue

Variabel dalam data untuk memetakan aspek plot ke warna yang berbeda.

3

palette

Kumpulan warna untuk memetakan variabel hue

4

kind

Jenis plot untuk hubungan non-identitas. {'sebar', 'reg'}

5

diag_kind

Jenis plot untuk subplot diagonal. {'hist', 'kde'}

Kecuali data, semua parameter lainnya bersifat opsional. Ada beberapa parameter lain yangpairplotbisa menerima. Yang disebutkan di atas sering digunakan params.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.set_style("ticks")
sb.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette = "husl")
plt.show()

Keluaran

Kami dapat mengamati variasi di setiap plot. Plot dalam format matriks di mana nama baris mewakili sumbu x dan nama kolom mewakili sumbu y.

Plot diagonal adalah plot kepadatan kernel dimana plot lainnya adalah plot sebar seperti yang disebutkan.

Pada bab sebelumnya kita telah mempelajari tentang plot pencar, plot hexbin dan plot kde yang digunakan untuk menganalisis variabel kontinu yang diteliti. Plot ini tidak cocok jika variabel yang diteliti bersifat kategorik.

Ketika satu atau kedua variabel yang diteliti bersifat kategorikal, kami menggunakan plot seperti striplot (), swarmplot (), dll ,. Seaborn menyediakan antarmuka untuk melakukannya.

Petak Sebar Kategoris

Pada bagian ini, kita akan belajar tentang plot pencar kategorikal.

stripplot ()

stripplot () digunakan jika salah satu variabel yang diteliti bersifat kategorik. Ini mewakili data dalam urutan yang diurutkan di sepanjang salah satu sumbu.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.stripplot(x = "species", y = "petal_length", data = df)
plt.show()

Keluaran

Pada plot di atas, kita dapat dengan jelas melihat perbedaannya petal_lengthdi setiap spesies. Namun, masalah utama dari plot pencar di atas adalah bahwa titik-titik pada plot pencar tumpang tindih. Kami menggunakan parameter 'Jitter' untuk menangani skenario semacam ini.

Jitter menambahkan beberapa gangguan acak ke data. Parameter ini akan menyesuaikan posisi di sepanjang sumbu kategorikal.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.stripplot(x = "species", y = "petal_length", data = df, jitter = Ture)
plt.show()

Keluaran

Sekarang, pembagian titik bisa dilihat dengan mudah.

Swarmplot ()

Opsi lain yang dapat digunakan sebagai alternatif untuk 'Jitter' adalah fungsi swarmplot(). Fungsi ini memposisikan setiap titik plot pencar pada sumbu kategorikal dan dengan demikian menghindari titik yang tumpang tindih -

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()

Keluaran

Dalam plot sebar kategoris yang kita bahas di bab sebelumnya, pendekatan menjadi terbatas dalam informasi yang dapat diberikannya tentang distribusi nilai dalam setiap kategori. Sekarang, melangkah lebih jauh, mari kita lihat apa yang dapat memfasilitasi kita dengan melakukan perbandingan dalam kategori.

Plot Kotak

Boxplot adalah cara mudah untuk memvisualisasikan distribusi data melalui kuartilnya.

Plot kotak biasanya memiliki garis vertikal yang memanjang dari kotak yang disebut kumis. Kumis ini menunjukkan variabilitas di luar kuartil atas dan bawah, oleh karena itu Plot Kotak juga disebut sebagaibox-and-whisker plot dan box-and-whisker diagram. Pencilan apa pun dalam data diplot sebagai titik individual.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()

Keluaran

Titik-titik di plot menunjukkan pencilan.

Plot Biola

Plot Biola adalah kombinasi dari plot kotak dengan perkiraan kepadatan kernel. Jadi, plot-plot ini lebih mudah untuk dianalisis dan dipahami sebaran datanya.

Mari kita gunakan kumpulan data tips yang dipanggil untuk mempelajari lebih lanjut tentang plot biola. Dataset ini berisi informasi terkait tip yang diberikan oleh pelanggan di sebuah restoran.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()

Keluaran

Nilai kuartil dan kumis dari diagram kotak ditampilkan di dalam biola. Karena plot biola menggunakan KDE, porsi biola yang lebih lebar menunjukkan kepadatan yang lebih tinggi dan wilayah yang sempit menunjukkan kepadatan yang relatif lebih rendah. Kisaran Antar-Kuartil dalam plot kotak dan porsi kepadatan yang lebih tinggi dalam kde termasuk dalam wilayah yang sama untuk setiap kategori plot biola.

Plot di atas menunjukkan distribusi total_bill pada empat hari dalam seminggu. Tapi, selain itu, jika kita ingin melihat bagaimana distribusi berperilaku sehubungan dengan seks, mari kita telusuri di contoh di bawah ini.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()

Keluaran

Sekarang kita bisa melihat dengan jelas perilaku belanja antara pria dan wanita. Kita dapat dengan mudah mengatakan bahwa, pria menghasilkan lebih banyak tagihan daripada wanita dengan melihat plotnya.

Dan, jika variabel hue hanya memiliki dua kelas, kita dapat mempercantik plot dengan membagi setiap biola menjadi dua, bukan dua biola pada hari tertentu. Salah satu bagian biola merujuk ke setiap kelas dalam variabel hue.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()

Keluaran

Dalam sebagian besar situasi, kami menangani estimasi dari seluruh distribusi data. Namun dalam hal estimasi tendensi sentral, kita memerlukan cara khusus untuk meringkas distribusinya. Mean dan median adalah teknik yang paling sering digunakan untuk memperkirakan tendensi sentral dari distribusi.

Di semua plot yang kami pelajari di bagian di atas, kami membuat visualisasi dari keseluruhan distribusi. Sekarang, mari kita bahas tentang plot yang dapat kita gunakan untuk memperkirakan tendensi sentral distribusi.

Plot Batang

Itu barplot()menunjukkan hubungan antara variabel kategorikal dan variabel kontinu. Data direpresentasikan dalam bentuk balok persegi panjang dimana panjang balok mewakili proporsi data dalam kategori tersebut.

Plot batang mewakili estimasi tendensi sentral. Mari kita gunakan dataset 'titanic' untuk mempelajari plot batang.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.barplot(x = "sex", y = "survived", hue = "class", data = df)
plt.show()

Keluaran

Pada contoh di atas, kita dapat melihat bahwa jumlah rata-rata ketahanan hidup laki-laki dan perempuan di setiap kelas. Dari plot tersebut kita dapat memahami bahwa lebih banyak perempuan yang bertahan hidup daripada laki-laki. Pada pria dan wanita lebih banyak jumlah yang selamat dari kelas satu.

Kasus khusus dalam barplot adalah menunjukkan tidak adanya observasi di setiap kategori daripada menghitung statistik untuk variabel kedua. Untuk ini, kami menggunakancountplot().

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.countplot(x = " class ", data = df, palette = "Blues");
plt.show()

Keluaran

Plot menyebutkan, jumlah penumpang kelas tiga lebih banyak dibandingkan kelas satu dan dua.

Plot Titik

Plot titik berfungsi sama seperti plot batang tetapi dalam gaya yang berbeda. Daripada batang penuh, nilai perkiraan diwakili oleh titik pada ketinggian tertentu di sumbu lain.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.pointplot(x = "sex", y = "survived", hue = "class", data = df)
plt.show()

Keluaran

Itu selalu lebih baik untuk menggunakan kumpulan data 'long-from' atau 'rapi'. Namun pada saat kita tidak memiliki pilihan selain menggunakan kumpulan data 'bentuk lebar', fungsi yang sama juga dapat diterapkan ke data "bentuk lebar" dalam berbagai format, termasuk Bingkai Data Pandas atau NumPy dua dimensi array. Objek ini harus diteruskan langsung ke parameter data, variabel x dan y harus ditentukan sebagai string

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.boxplot(data = df, orient = "h")
plt.show()

Keluaran

Selain itu, fungsi ini menerima vektor objek Pandas atau NumPy daripada variabel dalam DataFrame.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.boxplot(data = df, orient = "h")
plt.show()

Keluaran

Keuntungan utama menggunakan Seaborn bagi banyak pengembang di dunia Python adalah karena ia dapat mengambil objek DataFrame pandas sebagai parameter.

Data kategoris dapat divisualisasikan menggunakan dua plot, Anda juga dapat menggunakan fungsi pointplot(), atau fungsi tingkat yang lebih tinggi factorplot().

Factorplot

Factorplot menggambar plot kategoris pada FacetGrid. Dengan menggunakan parameter 'kind' kita dapat memilih plot seperti boxplot, violinplot, barplot dan stripplot. FacetGrid menggunakan pointplot secara default.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = pulse", hue = "kind",data = df);
plt.show()

Keluaran

Kita dapat menggunakan plot yang berbeda untuk memvisualisasikan data yang sama menggunakan kind parameter.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin',data = df);
plt.show()

Keluaran

Dalam plot faktor, data diplot pada kisi segi.

Apa itu Facet Grid?

Facet grid membentuk matriks panel yang ditentukan oleh baris dan kolom dengan membagi variabel. Karena panel, satu plot terlihat seperti banyak plot. Sangat membantu untuk menganalisis semua kombinasi dalam dua variabel terpisah.

Mari kita visualisasikan definisi di atas dengan sebuah contoh

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin', col = "diet", data = df);
plt.show()

Keluaran

Keuntungan menggunakan Facet adalah, kita dapat memasukkan variabel lain ke dalam plot. Plot di atas dibagi menjadi dua plot berdasarkan variabel ketiga yang disebut 'diet' dengan menggunakan parameter 'col'.

Kita dapat membuat banyak faset kolom dan menyelaraskannya dengan baris kisi -

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('titanic')
sb.factorplot("alive", col = "deck", col_wrap = 3,data = df[df.deck.notnull()],kind = "count")
plt.show()

keluaran

Seringkali, kami menggunakan kumpulan data yang berisi beberapa variabel kuantitatif, dan tujuan analisis sering kali menghubungkan variabel-variabel tersebut satu sama lain. Ini dapat dilakukan melalui garis regresi.

Saat membangun model regresi, kami sering memeriksa multicollinearity,di mana kami harus melihat korelasi antara semua kombinasi variabel kontinu dan akan mengambil tindakan yang diperlukan untuk menghapus multikolinearitas jika ada. Dalam kasus seperti itu, teknik berikut membantu.

Fungsi untuk Menggambar Model Regresi Linear

Ada dua fungsi utama di Seaborn untuk memvisualisasikan hubungan linier yang ditentukan melalui regresi. Fungsi-fungsi ini adalahregplot() dan lmplot().

regplot vs lmplot

regplot lmplot
menerima variabel x dan y dalam berbagai format termasuk array numpy sederhana, objek Seri pandas, atau sebagai referensi ke variabel di DataFrame pandas memiliki data sebagai parameter yang diperlukan dan variabel x dan y harus ditentukan sebagai string. Format data ini disebut data "bentuk panjang"

Sekarang mari kita menggambar plotnya.

Contoh

Ploting regplot dan lmplot dengan data yang sama dalam contoh ini

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.regplot(x = "total_bill", y = "tip", data = df)
sb.lmplot(x = "total_bill", y = "tip", data = df)
plt.show()

Keluaran

Anda dapat melihat perbedaan ukuran antara dua plot.

Kami juga dapat menyesuaikan regresi linier ketika salah satu variabel mengambil nilai diskrit

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.lmplot(x = "size", y = "tip", data = df)
plt.show()

Keluaran

Memasang Berbagai Jenis Model

Model regresi linier sederhana yang digunakan di atas sangat sederhana untuk disesuaikan, tetapi dalam kebanyakan kasus, datanya non-linier dan metode di atas tidak dapat menggeneralisasi garis regresi.

Mari kita gunakan dataset Anscombe dengan plot regresi -

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))
plt.show()

Dalam hal ini, data tersebut cocok untuk model regresi linier dengan varian yang lebih sedikit.

Mari kita lihat contoh lain di mana data mengambil deviasi tinggi yang menunjukkan garis paling cocok tidak baik.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))
plt.show()

Keluaran

Plot menunjukkan deviasi titik data yang tinggi dari garis regresi. Tatanan non-linier yang lebih tinggi tersebut dapat divisualisasikan menggunakanlmplot() dan regplot()Ini dapat menyesuaikan model regresi polinomial untuk mengeksplorasi jenis sederhana dari tren nonlinier dalam kumpulan data -

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2)
plt.show()

Keluaran

Pendekatan yang berguna untuk menjelajahi data dimensi menengah, adalah dengan menggambar beberapa contoh dari plot yang sama pada subkumpulan yang berbeda dari kumpulan data Anda.

Teknik ini biasa disebut dengan “lattice”, atau “trellis” plotting, dan ini terkait dengan gagasan “kelipatan kecil”.

Untuk menggunakan fitur ini, data Anda harus berada dalam Pandas DataFrame.

Merencanakan Kelipatan Kecil dari Subset Data

Di bab sebelumnya, kita telah melihat contoh FacetGrid di mana kelas FacetGrid membantu dalam memvisualisasikan distribusi satu variabel serta hubungan antara beberapa variabel secara terpisah dalam subset kumpulan data Anda menggunakan beberapa panel.

FacetGrid dapat digambar hingga tiga dimensi - baris, warna, dan corak. Dua yang pertama memiliki korespondensi yang jelas dengan larik sumbu yang dihasilkan; Bayangkan variabel hue sebagai dimensi ketiga di sepanjang sumbu kedalaman, di mana berbagai level diplot dengan warna berbeda.

FacetGrid objek mengambil kerangka data sebagai masukan dan nama-nama variabel yang akan membentuk dimensi baris, kolom, atau corak grid.

Variabel harus bersifat kategorikal dan data di setiap tingkat variabel akan digunakan untuk faset di sepanjang sumbu itu.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
plt.show()

Keluaran

Dalam contoh di atas, kami baru saja menginisialisasi file facetgrid objek yang tidak menarik apapun pada mereka.

Pendekatan utama untuk memvisualisasikan data pada grid ini adalah dengan FacetGrid.map()metode. Mari kita lihat distribusi tip di masing-masing subset ini, menggunakan histogram.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
plt.show()

Keluaran

Jumlah plot lebih dari satu karena parameter col. Kami membahas tentang parameter col di bab-bab sebelumnya.

Untuk membuat plot relasional, berikan beberapa nama variabel.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "sex", hue = "smoker")
g.map(plt.scatter, "total_bill", "tip")
plt.show()

Keluaran

PairGrid memungkinkan kita menggambar kisi subplot menggunakan tipe plot yang sama untuk memvisualisasikan data.

Tidak seperti FacetGrid, ia menggunakan pasangan variabel yang berbeda untuk setiap subplot. Ini membentuk matriks sub-plot. Kadang-kadang juga disebut sebagai "matriks sebar".

Penggunaan pairgrid mirip dengan facetgrid. Pertama-tama inisialisasi grid dan kemudian lewati fungsi plotting.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map(plt.scatter);
plt.show()

Anda juga dapat memplot fungsi yang berbeda pada diagonal untuk menunjukkan distribusi univariat variabel di setiap kolom.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter);
plt.show()

Keluaran

Kami dapat menyesuaikan warna plot ini menggunakan variabel kategori lain. Misalnya, kumpulan data iris memiliki empat pengukuran untuk masing-masing dari tiga spesies bunga iris yang berbeda sehingga Anda dapat melihat perbedaannya.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter);
plt.show()

Keluaran

Kita dapat menggunakan fungsi berbeda di segitiga atas dan bawah untuk melihat aspek hubungan yang berbeda.

Contoh

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
g = sb.PairGrid(df)
g.map_upper(plt.scatter)
g.map_lower(sb.kdeplot, cmap = "Blues_d")
g.map_diag(sb.kdeplot, lw = 3, legend = False);
plt.show()

Keluaran