Bagaimana untuk Mencipta Bar Warna Diskret Tersuai untuk Matplotlib Scatterplot?

DDD
Lepaskan: 2024-10-24 18:36:29
asal
977 orang telah melayarinya

How to Create a Custom Discrete Colorbar for a Matplotlib Scatterplot?

Bar Warna Diskret Tersuai untuk Matplotlib Scatterplot

Dalam Matplotlib, mencipta bar warna diskret untuk scatterplot membolehkan anda mewakili titik data dengan warna unik berdasarkan pada nilai tag integer mereka. Untuk mencapai matlamat ini, peta warna diskret tersuai dan BoundaryNorm boleh digunakan.

Mari bina plot serakan dengan data x dan y rawak, dan tetapkan tag integer antara 0 hingga 20:

<code class="python">import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(20)
y = np.random.rand(20)
tag = np.random.randint(0, 20, 20)</code>
Salin selepas log masuk

Pada mulanya, menggunakan tetapan lalai, bar warna memaparkan julat warna yang berterusan:

<code class="python">plt.scatter(x, y, c=tag)
plt.colorbar()</code>
Salin selepas log masuk

Untuk mencipta bar warna diskret, kami akan menggunakan BoundaryNorm untuk mentakrifkan sempadan peta warna. Kami juga ingin memastikan bahawa nilai teg 0 diwakili oleh warna kelabu:

<code class="python">bounds = np.linspace(0, 20, 21)
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)

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)</code>
Salin selepas log masuk

Petak serakan yang dikemas kini dengan bar warna diskret kelihatan seperti ini:

<code class="python">scat = ax.scatter(x, y, c=tag, s=np.random.randint(100, 500, 20),
                  cmap=cmap, norm=norm)

# Add the discrete colorbar
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')</code>
Salin selepas log masuk

Pendekatan ini menyediakan bar warna diskret yang ditakrifkan dengan baik untuk plot serakan anda, di mana setiap nilai teg diwakili oleh warna unik, termasuk warna kelabu untuk nilai teg 0.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Bar Warna Diskret Tersuai untuk Matplotlib Scatterplot?. 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!