Menguasai 1 plot Seaborn sekaligus

Python Vizardry adalah serangkaian artikel pendek tentang berbagai pustaka visualisasi untuk Python di mana kita melihat 1 plot dalam satu waktu. Ini adalah bacaan cepat untuk membuat Anda memahami intuisi dan kode. Jangan ragu untuk menyimpan artikel-artikel ini sebagai buku catatan curang untuk plot tersebut.

Yg keturunan dr laut?

Seaborn adalah perpustakaan visualisasi data Python berdasarkan Matplotlib. Matplotlib terutama berfokus pada penyediaan blok penyusun tingkat rendah untuk membuat plot, Seaborn menyediakan antarmuka tingkat tinggi untuk membuat grafik statistik yang menarik dan informatif. Meskipun Matplotlib memberikan lebih banyak fleksibilitas dan opsi penyesuaian, Seaborn seringkali lebih mudah digunakan dan menghasilkan gambar yang lebih halus dengan lebih sedikit kode.

Fitur:

  • Dukungan bawaan untuk memvisualisasikan model statistik dan ketidakpastiannya
  • Menyediakan fungsi untuk memvisualisasikan kumpulan data yang kompleks, seperti plot berpasangan, yang memudahkan untuk mengeksplorasi hubungan
  • Opsi palet warna tingkat lanjut
  • Dukungan untuk membuat plot dalam konteks yang berbeda (misalnya di Jupyter Notebook atau di halaman web)

Memasang & Mengimpor Seaborn

#Installing Seaborn
pip install seaborn
#Importing Seaborn
import seaborn as sns
#Importing the library
import seaborn as sns

Memuat Set Data

Kumpulan data “mpg” adalah kumpulan data bawaan di perpustakaan Seaborn yang berisi informasi tentang berbagai model mobil dan efisiensi bahan bakarnya (diukur dalam mil per galon, atau mpg). Dataset tersebut juga berisi data asal mobil, perpindahan, jumlah silinder, tenaga kuda, bobot, tahun model, dan akselerasi setiap mobil. Dan yang jelas nama mobilnya.

cars = sns.load_dataset('mpg')

Plot Sebar

Secara intuitif, ini adalah jenis plot yang paling mudah untuk dipahami. Kita mempunyai koordinat sebanyak jumlah sumbu. Kita dapat memplot setiap pengamatan dalam bentuk titik pada sistem koordinat Kartesius berdimensi n.

Ini adalah cara untuk mengeksplorasi secara visual bagaimana satu variabel dipengaruhi oleh variabel lain, atau dengan kata lain, hubungan antara dua variabel.

Sebagai praktik standar, variabel bebas diplot pada sumbu x (sumbu horizontal) dan variabel terikat diplot pada sumbu y (sumbu vertikal). Dengan cara ini, lebih mudah untuk mengetahui apa yang terjadi pada variabel terikat luar. Anda akan melihat caranya.

Grafik yang dihasilkan akan menunjukkan apakah terdapat hubungan positif, negatif, atau tidak sama sekali antara kedua variabel.

Seaborn.plot sebar()

Ini adalah parameter yang kita miliki saat menjalankan scatterplot Seaborn.

seaborn.scatterplot(
  data=None, 
  *, 
  x=None, 
  y=None, 
  hue=None, 
  size=None, 
  style=None, 
  palette=None, 
  hue_order=None, 
  hue_norm=None, 
  sizes=None, 
  size_order=None, 
  size_norm=None, 
  markers=True, 
  style_order=None, 
  legend='auto', 
  ax=None, 
  **kwargs
)

Mari kita mulai merencanakan…

Untuk plot pertama kita, plot dasar xy dari 'berat' & 'efisiensi bahan bakar' mobil sudah cukup.

sns.scatterplot(
    data=cars,
    x='weight',
    y='mpg'
);

Logikanya, kita melihat hubungan terbalik antara bobot dan efisiensi bahan bakar.

Mari kita pengaruhi tampilan plot ini. Kita dapat mengubah penanda dengan menggunakan parameter marker. Anda memiliki 11 jenis penanda pada tanggal artikel ini. Sementara kita melakukannya, mari kita pengaruhi juga ukuran penanda dengan menggunakan parameter s

sns.scatterplot(
    data=cars, 
    x='weight', y='mpg',
    marker='*', s=150
);

Mari kita ubah warna marker menggunakan hexcode yang ditetapkan ke parameter marker.

sns.scatterplot(
    data=cars, 
    x='weight', y='mpg',
    marker='*', s=150, color='#FF5733'
);

Dengan penanda yang tumpang tindih, sepertinya merupakan ide bagus untuk membuatnya tidak terlalu buram. Kita dapat melakukannya dengan menggunakan parameter alpha. Mari kita gunakan transparansi 0,5 alpha atau 50%.

sns.scatterplot(
    data=cars, 
    x='weight', y='mpg',
    marker=7, s=100, color='#581845', alpha=0.5
);

Di sini, parameter matplotlib dapat digunakan. Sebagai contoh, kita juga bisa menambahkan edge_colorke markernya.

sns.scatterplot(
    data=cars, 
    x='weight', y='mpg',
    s=100, alpha=0.4, edgecolor='black'
);

Mari kita tambahkan ini. Kita dapat memodifikasi beberapa semantik seperti hue, size dan style. Oleh karena itu, kita dapat menambahkan lebih banyak dimensi ke plot kita, dengan menetapkan variabel kategori ke parameter ini.

Agar plotnya tidak terlalu berisik, saya akan menyaring mobil dengan 4, 6, dan 8 silinder. Selain itu, tambahkan variabel kategori lain yang memberi label pada mobil yang lebih tua dari tahun 1975 sebagai retro.

#Filtering to get 4,6,8 cylinder cars
cars = cars.loc[cars.cylinders.isin([4,6,8]), :]

#Labelling model_year
cars['retro'] = cars.model_year < 75

#Plot 
sns.scatterplot(
    data=cars,
    x='weight',
    y='mpg',
    hue='origin',
    style='cylinders',
    size='retro'
);

Perhatikan, bagaimana kita dapat menambahkan lebih banyak informasi ke plot kita tanpa harus membuat kode terlalu banyak. Kita dapat melihat bagaimana tanda silang berhubungan dengan model mobil baru dibandingkan dengan titik pada model mobil lama. Ukuran penanda ini memberi tahu kita berapa jumlah silinder mesinnya, sementara warna memberi tahu kita negara asalnya. Itu sedikit peningkatan dari apa yang kami gambar sebelumnya.

Mari kita beralih ke palet warna yang lebih halus.

sns.scatterplot(
    data=cars,
    x='weight',
    y='mpg',
    hue='origin',
    style='retro',
    size='cylinders',
    palette='pastel'
);

Kita mempunyai opsi untuk menentukan urutan semantik mana pun dengan menggunakan parameter hue_order, size_order, dan style_order. Mari kita lihat aksinya.

Dan sementara kita melakukannya, mari kita percantik kodenya sedikit agar data dan sumbu dideklarasikan dalam satu baris, diikuti oleh semantik dan kemudian parameter tambahan lainnya.

sns.scatterplot(
    data=cars, x='weight', y='mpg',
    hue='origin', style='retro', size='cylinders',
    hue_order=['japan', 'europe', 'usa'],
    size_order=[8, 6, 4],
    style_order=[True, False],
    palette='magma'
);

Selamat merencanakan!

Berikut referensi dokumentasi resmi seaborn.scatterplot.