Bagaimana untuk Mencipta Bar Warna Diskret untuk Scatterplots dalam Matplotlib?

DDD
Lepaskan: 2024-10-25 09:33:04
asal
1003 orang telah melayarinya

How to Create a Discrete Colorbar for Scatterplots in Matplotlib?

Membuat Bar Warna Diskret untuk Matplotlib Scatterplots

Menjanakan scatterplot dengan perwakilan warna diskret ialah tugas biasa dalam visualisasi data. Ini membolehkan setiap titik data diberikan warna unik berdasarkan nilai tertentu.

Dalam Matplotlib, mencipta bar warna diskret boleh dicapai menggunakan BoundaryNorm sebagai penormal untuk plot serakan. Ini amat berguna apabila bekerja dengan nilai teg integer, seperti dalam contoh yang disediakan:

plt.scatter(x, y, c=tag)
Salin selepas log masuk

di mana teg mewakili nilai teg integer untuk setiap titik data.

Tetapan lalai, plt .colorbar(), biasanya memaparkan julat warna yang berterusan. Untuk mencipta bar warna diskret, adalah perlu untuk menentukan set warna diskret. Sebagai contoh, untuk mencipta bar warna dengan 20 warna, fungsi LinearSegmentedColormap.from_list boleh digunakan:

cmaplist = [cmap(i) for i in range(cmap.N)]
cmaplist[0] = (.5, .5, .5, 1.0)
cmap = mpl.colors.LinearSegmentedColormap.from_list('Custom cmap', cmaplist, cmap.N)
Salin selepas log masuk

Di sini, entri warna pertama ditetapkan kepada kelabu, yang boleh digunakan untuk mewakili nilai teg bagi 0. Entri lain dalam cmaplist mentakrifkan warna untuk nilai teg yang tinggal.

Untuk mencipta bar warna diskret, anda juga perlu mentakrifkan tong dan menormalkan data. Fungsi scipy.stats.binned_statistic boleh digunakan untuk mengira kedudukan individu bagi setiap titik data dan menetapkannya kepada kumpulan diskret. Kemudian, warna.BoundaryNorm boleh digunakan untuk menormalkan data dan memetakannya ke julat bar warna yang dikehendaki:

bounds = np.linspace(0, 20, 21)
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
Salin selepas log masuk

Akhir sekali, paksi kedua boleh ditambah pada rajah untuk mencipta bar warna itu sendiri:

ax2 = fig.add_axes([0.95, 0.1, 0.03, 0.8])
cb = plt.colorbar.ColorbarBase(ax2, cmap=cmap, norm=norm, spacing='proportional', ticks=bounds, boundaries=bounds, format='%1i')
Salin selepas log masuk

Ini akan mencipta bar warna diskret dengan skema warna yang ditentukan. Bilangan warna diskret boleh dilaraskan dengan mengubah suai parameter sempadan dan sempadan.

Dengan mengikuti langkah ini, adalah mungkin untuk menjana bar warna diskret dalam Matplotlib yang mewakili nilai teg integer asas bagi titik data dengan tepat.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Bar Warna Diskret untuk Scatterplots dalam Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!