Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Bar Warna Diskret untuk Scatterplots dalam Matplotlib?

Bagaimana untuk Mencipta Bar Warna Diskret untuk Scatterplots dalam Matplotlib?

DDD
DDDasal
2024-10-25 09:33:04995semak imbas

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)

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)

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)

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')

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!

Kenyataan:
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