Python

Peta Haba dan Bar Warna di Matplotlib

Peta Haba dan Bar Warna di Matplotlib
Visualisasi data adalah salah satu langkah paling penting dalam Sains Data (atau sains lain, dalam hal ini). Kita, sebagai manusia, kurang pandai memahami baris dan baris nombor. Itulah sebabnya selalu berguna untuk mempunyai utiliti seperti Matplotlib untuk membantu kita mengembangkan intuisi visual tentang apa yang sedang berlaku apabila, katakanlah, algoritma pembelajaran mesin mengklasifikasikan sejumlah besar data.

Walaupun grafik yang menunjukkan hubungan antara dua pemboleh ubah seperti tinggi dan berat dapat digambarkan dengan mudah pada layar rata seperti yang ditunjukkan di bawah, keadaan menjadi sangat tidak kemas ketika kita mempunyai lebih dari dua parameter.

Ketika itulah orang cuba beralih ke plot 3D, tetapi ini sering membingungkan dan kikuk yang mengalahkan keseluruhan tujuan visualisasi data. Kami memerlukan peta panas untuk visual.

Apa itu peta haba?

Sekiranya anda melihat gambar dari kamera termal, anda dapat melihat peta panas literal. Kamera pengimejan termal mewakili suhu yang berbeza dengan warna yang berbeza. Skema pewarnaan menarik bagi intuisi kita bahawa Merah adalah "warna hangat" dan mengambil warna biru dan hitam untuk mewakili permukaan sejuk.

Pandangan mars ini adalah contoh yang sangat baik di mana kawasan sejuk berwarna biru sedangkan kawasan yang lebih panas berwarna merah dan kuning. Bar warna dalam gambar menunjukkan warna apa yang mewakili suhu apa.

Dengan menggunakan matplotlib kita dapat mengaitkan dengan titik (x, y) pada grafik dengan warna tertentu yang mewakili pemboleh ubah yang ingin kita gambarkan. Tidak perlu suhu, mungkin pemboleh ubah lain. Kami juga akan memaparkan a bar warna di sebelahnya untuk menunjukkan pengguna apa maksud warna yang berbeza.

Selalunya anda akan melihat orang menyebut colormaps dan bukannya peta panas. Ini sering digunakan secara bergantian. Colormap adalah istilah yang lebih umum.

Memasang dan Mengimport Matplotlib dan Pakej Berkaitan

Untuk memulakan dengan Matplotlib, pastikan anda memasang Python (sebaiknya Python 3 dan pip). Anda juga akan memerlukan kekenyangan, licik dan panda untuk bekerja dengan set data. Oleh kerana kita akan merancang fungsi sederhana, hanya dua daripada pakej kekenyangan dan matplotlib akan diperlukan.

$ pip pasang matplotlib numpy
#atau jika anda memasang kedua-dua python dua dan tiga
$ pip3 pasang matplotlib numpy

Sebaik sahaja anda memasang perpustakaan, anda perlu memastikan bahawa pustaka tersebut diimport dalam program python anda.

import numpy sebagai np
import matplotlib.pyplot sebagai plt

Sekarang anda boleh menggunakan fungsi yang disediakan oleh perpustakaan ini dengan menggunakan sintaks seperti np.fungsi tidak berfungsi ()dan  plt.fungsi lain ().

Beberapa Contoh

Mari kita mulakan dengan merancang fungsi matematik sederhana yang mengambil titik pada satah (koordinat x dan y mereka) dan memberikan nilai kepada mereka. Tangkapan skrin di bawah menunjukkan fungsi bersama dengan plot.

Warna yang berbeza mewakili nilai yang berbeza (seperti yang ditunjukkan oleh skala di sebelah plot). Mari lihat kod yang boleh digunakan untuk menghasilkan ini.

import numpy sebagai np
import matplotlib.pyplot sebagai plt
 
# Fungsi matematik yang perlu kita plot
def z_func (x, y):
pulangan (1 - (x ** 2 + y ** 3)) * np.habis (- (x ** 2 + y ** 2) / 2)
# Menetapkan nilai input
x = np.arange (-3.0, 3.0, 0.1)
y = np.arange (-3.0, 3.0, 0.1)
X, Y = np.meshgrid (x, y)
 
# Mengira output dan menyimpannya dalam array Z
Z = z_func (X, Y)
 
im = plt.imshow (Z, cmap = plt.cm.RdBu, sejauh = (- 3, 3, 3, -3), interpolasi = 'bilinear')
 
plt.bar warna (im);
 
plt.tajuk ('$ z = (1-x ^ 2 + y ^ 3) e ^ - (x ^ 2 + y ^ 2) / 2 $')
 
plt.tunjuk ()

Perkara pertama yang perlu diperhatikan ialah kita mengimport hanya matplotlib.pplot sebahagian kecil dari keseluruhan perpustakaan. Oleh kerana projek ini sudah cukup lama, banyak barang terkumpul selama ini. Contohnya, matplotlib.pyplot popular pada masa itu tetapi sekarang hanya peninggalan sejarah dan mengimportnya hanya menambah lebih banyak kegembiraan pada program anda.

Seterusnya kita menentukan fungsi matematik yang ingin kita plot. Ia mengambil dua nilai (x, y) dan mengembalikan nilai ketiga z. Kami telah menentukan fungsi yang belum digunakan.

Bahagian seterusnya mengambil tugas membuat susunan nilai input, kami menggunakan numpy untuk itu walaupun anda dapat menggunakan build in julat () berfungsi untuknya jika anda suka. Setelah senarai nilai x dan y disiapkan (antara negatif hingga 3) kita mengira nilai z darinya.

Setelah kita mengira input dan output kita, kita dapat merancang hasilnya. The plt.tunjukkan () memberitahu python bahawa gambar akan berkaitan dengan Z yang merupakan pemboleh ubah keluaran kita. Ia juga mengatakan bahawa ia akan menjadi colormap, satu cmap, dengan Biru Merah (RdBu) Skala memanjang dari -3 hingga 3 pada kedua-dua paksi. The interpolasi parameter menjadikan grafik lebih lancar, buatan. Jika tidak, gambar anda akan kelihatan cukup piksel dan kasar.

Pada ketika ini, grafik dibuat, tidak dicetak. Kami kemudian menambah bar warna di sebelah untuk membantu mengaitkan nilai Z yang berbeza dengan warna yang berbeza dan menyebut persamaan dalam tajuk. Ini dilakukan secara berperingkat plt.bar warna (im) dan plt.tajuk (…). Akhirnya, memanggil fungsi menunjukkan kepada kita grafik di skrin.

Kebolehgunaan semula

Anda boleh menggunakan struktur di atas untuk merancang colormap 2D yang lain. Anda tidak perlu berpegang pada fungsi matematik. Sekiranya anda mempunyai susunan data yang besar dalam sistem fail anda, mungkin maklumat mengenai demografi tertentu, atau data statistik lain, anda boleh memasangnya dengan mengubah X, Y nilai tanpa mengubah bahagian colormap.

Semoga artikel ini berguna dan sekiranya anda menyukai kandungan serupa, beri tahu kami.

SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...
Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...