Grafik multidimensi dalam Python - dari tiga dimensi hingga enam dimensi

Contoh grafik multidimensi

Pendahuluan


Visualisasi adalah bagian penting dari analisis data, dan kemampuan untuk melihat berbagai dimensi sekaligus membuat tugas ini lebih mudah. Dalam tutorial kami akan menggambar grafik hingga 6 dimensi.


Plotly adalah pustaka Python open source untuk berbagai visualisasi yang menawarkan lebih banyak penyesuaian daripada matplotlib dan seaborn yang terkenal. Modul ini diinstal seperti biasa - pip install plotly . Kami akan menggunakannya untuk menggambar grafik.


Mari kita siapkan datanya


Untuk visualisasi, kami menggunakan data sederhana tentang mobil dari UCI (University of California, Irvine - sekitar. Terjemahan) , yang mewakili 26 karakteristik untuk 205 mobil (26 kolom untuk 205 baris). Untuk memvisualisasikan enam dimensi, kami mengambil enam parameter ini.


Hanya 4 baris dari 205 yang ditampilkan di sini.

Unduh data dari CSV menggunakan panda .


import pandas as pd data = pd.read_csv("cars.csv") 

Sekarang, setelah bersiap, mari kita mulai dengan dua dimensi.


Scatterplot dua dimensi


Sebar adalah plot yang sangat sederhana dan umum. Dari 6 parameter, harga dan curb-weight digunakan di bawah ini sebagai Y dan X, masing-masing.


 #    import plotly import plotly.graph_objs as go #  figure fig1 = go.Scatter(x=data['curb-weight'], y=data['price'], mode='markers') #  layout mylayout = go.Layout(xaxis=dict(title="curb-weight"), yaxis=dict( title="price")) #     HTML plotly.offline.plot({"data": [fig1], "layout": mylayout}, auto_open=True) 

Dalam alur cerita, prosesnya sedikit berbeda dari yang sama di Matplotlib. Kita harus membuat tata letak dan gambar , meneruskannya ke fungsi offline.plot , setelah itu hasilnya akan disimpan dalam file HTML di direktori kerja saat ini. Ini adalah screenshot dari apa yang terjadi. Pada akhir artikel akan ada tautan ke repositori GitHub dengan grafis-HTML interaktif siap pakai.


Scatterplot dua dimensi

Plot sebar 3D


Kita dapat menambahkan parameter daya kuda ketiga (jumlah daya kuda) ke sumbu Z. Plotly menyediakan fungsi Scatter3D untuk membuat grafik 3D interaktif.


Grafik 3D

Alih-alih menempelkan kode di sini setiap kali, saya menambahkannya ke repositori.


(Lebih mudah untuk melihat kode yang relevan di tab yang berdekatan secara paralel dengan membaca - kira-kira. Terjemahan.)


Menambahkan dimensi keempat


Kami tahu bahwa Anda tidak dapat menggunakan lebih dari tiga dimensi secara langsung, tetapi ada solusinya: kami dapat meniru kedalaman untuk memvisualisasikan dimensi yang lebih tinggi menggunakan warna, ukuran atau bentuk.


Di sini, bersama dengan tiga karakteristik sebelumnya, kita akan menggunakan jarak tempuh kota - city-mpg sebagai dimensi keempat, di mana parameter markercolor dari fungsi Scatter3D akan bertanggung jawab. Warna marker yang lebih terang berarti jarak tempuh yang lebih sedikit.


Segera terbukti bahwa semakin tinggi harga, jumlah kuda dan massa, semakin rendah jarak tempuh.


Grafik 4D dengan nuansa sebagai dimensi ke-4

Menambahkan dimensi kelima


Ukuran marker dapat digunakan untuk memvisualisasikan dimensi ke-5. Kami menggunakan karakteristik ukuran mesin untuk parameter markersize dari fungsi Scatter3D .


Pengamatan: ukuran mesin terkait dengan beberapa parameter sebelumnya. Semakin tinggi harganya, semakin besar mesinnya. Serta: jarak tempuh yang lebih rendah - lebih banyak mesin.


5D plot dengan nilai marker sebagai dimensi kelima (ukuran motor)

Menambahkan Dimensi Keenam


Bentuk marker sangat bagus untuk memvisualisasikan kategori. Plotly memberi Anda pilihan 10 bentuk berbeda untuk grafik 3D (tanda bintang, lingkaran, kotak, dll.). Dengan demikian, hingga 10 nilai berbeda dapat ditampilkan sebagai formulir.


Kami memiliki karakteristik num-of-door , yang berisi bilangan bulat - jumlah pintu (2 atau 4). Kami mengubah nilai-nilai ini menjadi angka: kotak untuk 4 pintu, lingkaran untuk 2 pintu. Parameter markersymbol dari fungsi Scatter3D digunakan .


Pengamatan: rasanya semua mobil termurah memiliki 4 pintu (lingkaran). Dengan terus mempelajari jadwal, lebih banyak asumsi dan kesimpulan dapat dibuat.


Grafik 6D dengan bentuk marker sebagai dimensi keenam (jumlah pintu)

Bisakah kita menambahkan lebih banyak dimensi?


Tentu kita bisa! Marker memiliki lebih banyak properti, seperti opacity dan gradien, yang dapat diaktifkan. Tetapi semakin banyak dimensi yang kita tambahkan, semakin sulit untuk mempertahankan semuanya.


Kode sumber


Kode python dan grafik interaktif untuk semua bentuk tersedia di GitHub di sini.

Source: https://habr.com/ru/post/id456282/


All Articles