Halo, Habr! Saya mempersembahkan kepada Anda terjemahan artikel
"Segala sesuatu yang perlu Anda ketahui tentang Plot Menyebar untuk Visualisasi Data" oleh George Seif.
Jika Anda terlibat dalam analisis dan visualisasi data, maka kemungkinan besar Anda harus berurusan dengan grafik sebar. Terlepas dari kesederhanaannya, plot pencar adalah alat yang ampuh untuk memvisualisasikan data. Dengan memanipulasi warna, ukuran, dan bentuk, fleksibilitas dan keterwakilan plot pencar dapat dipastikan.
Pada artikel ini, Anda akan mempelajari hampir semua yang perlu Anda ketahui tentang visualisasi data menggunakan diagram sebar. Kami akan mencoba mengurai semua parameter yang diperlukan dalam penggunaannya dalam kode python. Anda juga dapat menemukan beberapa trik praktis.
Bangunan Regresi
Bahkan penggunaan diagram sebar yang paling primitif sudah memberikan gambaran umum data kami. Pada Gambar 1, kita sudah bisa melihat pulau-pulau data gabungan dan dengan cepat mengidentifikasi outlier.
Gambar 1
Garis regresi yang sesuai secara visual menyederhanakan tugas mengidentifikasi titik yang dekat dengan tengah. Pada Gambar 2, kami merencanakan grafik garis. Sangat mudah untuk melihat bahwa dalam hal ini fungsi linier tidak representatif, karena banyak titik yang cukup jauh dari garis.
Gambar 2
Gambar 3 menggunakan polinomial orde 4 dan terlihat jauh lebih menjanjikan. Tampaknya untuk memodelkan dataset ini, kita pasti membutuhkan polinomial urutan 4.
Gambar 3
import seaborn as sns import matplotlib.pyplot as plt df = sns.load_dataset('iris')
Warna dan bentuk titik-titik
Warna dan bentuk dapat digunakan untuk memvisualisasikan berbagai kategori dalam dataset Anda. Warna dan bentuknya sangat jelas secara visual. Ketika Anda melihat grafik di mana kelompok titik memiliki warna yang berbeda dari bentuk kami, segera menjadi jelas bahwa titik tersebut milik kelompok yang berbeda.
Gambar 4 menunjukkan kelas yang dikelompokkan berdasarkan warna. Gambar 5 menunjukkan kelas-kelas, dipisahkan oleh warna dan bentuk. Dalam kedua kasus, jauh lebih mudah untuk melihat pengelompokan. Sekarang kita tahu bahwa akan mudah untuk memisahkan kelas
setosa , dan apa yang harus kita fokuskan. Juga jelas bahwa grafik garis tunggal tidak akan dapat memisahkan titik-titik hijau dan oranye. Karena itu, kita perlu menambahkan sesuatu untuk menampilkan lebih banyak dimensi.
Pilihan antara warna dan bentuk menjadi masalah preferensi. Secara pribadi, saya menemukan warna sedikit lebih jelas dan lebih intuitif, tetapi pilihan selalu milik Anda.
Gambar 4
Gambar 5
import seaborn as sns import matplotlib.pyplot as plt df = sns.load_dataset('iris')
Histogram marjinal
Contoh grafik dengan histogram marjinal ditunjukkan pada Gambar 6. Histogram marjinal ditumpangkan di bagian atas dan samping, mewakili distribusi titik untuk objek di sepanjang absis dan ditahbiskan. Penambahan kecil ini sangat bagus untuk menentukan titik distribusi dan outlier.
Sebagai contoh, pada Gambar 6, kita jelas melihat konsentrasi tinggi poin di sekitar markup 3.0. Dan berkat histogram ini, Anda dapat menentukan tingkat konsentrasi. Di sisi kanan Anda dapat melihat bahwa di sekitar markup 3.0 ada setidaknya tiga kali lebih banyak poin daripada rentang diskrit lainnya. Juga, dengan menggunakan histogram sisi kanan, orang dapat dengan jelas mengenali bahwa outlier yang jelas berada di atas tanda 3,75. Diagram atas menunjukkan bahwa distribusi titik di sepanjang sumbu X lebih seragam, dengan pengecualian outlier di sudut paling kanan.
Gambar 6
import seaborn as sns import matplotlib.pyplot as plt df = sns.load_dataset('iris') sns.jointplot(x=df["sepal_length"], y=df["sepal_width"], kind='scatter') plt.show()
Bagan Gelembung
Menggunakan bagan gelembung, kita perlu menggunakan beberapa variabel untuk menyandikan informasi. Parameter baru yang melekat dalam jenis visualisasi ini adalah ukuran. Pada Gambar 7 kami menunjukkan jumlah kentang goreng yang dimakan oleh tinggi dan berat orang yang makan. Harap perhatikan bahwa diagram sebar hanyalah alat visualisasi dua dimensi, tetapi saat menggunakan bagan gelembung, kami dapat dengan terampil menampilkan informasi dengan tiga dimensi.
Di sini kita menggunakan
warna, posisi dan ukuran , di mana posisi gelembung menentukan tinggi dan berat orang, warna menentukan jenis kelamin, dan ukurannya ditentukan oleh jumlah kentang goreng yang dimakan. Bagan gelembung dengan mudah memungkinkan kita untuk dengan mudah menggabungkan semua atribut menjadi satu grafik sehingga kita dapat melihat informasi berukuran besar dalam bentuk dua dimensi.
Gambar 7
import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpatches x = np.array([100, 105, 110, 124, 136, 155, 166, 177, 182, 196, 208, 230, 260, 294, 312]) y = np.array([54, 56, 60, 60, 60, 72, 62, 64, 66, 80, 82, 72, 67, 84, 74]) z = (x*y) / 60 for index, val in enumerate(z): if index < 10: color = 'g' else: color = 'r' plt.scatter(x[index], y[index], s=z[index]*5, alpha=0.5, c=color) red_patch = mpatches.Patch(color='red', label='Male') green_patch = mpatches.Patch(color='green', label='Female') plt.legend(handles=[green_patch, red_patch]) plt.title("French fries eaten vs height and weight") plt.xlabel("Weight (pounds)") plt.ylabel("Height (inches)") plt.show()