Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Bar Warna Diskret Tersuai untuk 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>
Pada mulanya, menggunakan tetapan lalai, bar warna memaparkan julat warna yang berterusan:
<code class="python">plt.scatter(x, y, c=tag) plt.colorbar()</code>
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>
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>
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!