在散佈圖中,連續色條可能並不總是足以表示離散資料。建立離散色條對於有效視覺化底層模式至關重要。
為了實現這一點,Matplotlib 中的 BoundaryNorm 類別可以用作散佈圖的標準化器。這確保了不同的值由唯一的顏色表示。
嘗試將特定值設為灰色時,自訂顏色欄會遇到一個挑戰。為了解決這個問題,可以透過提取和覆蓋顏色條目來修改現有的調色板。
<code class="python">cmaplist = [cmap(i) for i in range(cmap.N)] # force the first color entry to be grey cmaplist[0] = (.5, .5, .5, 1.0)</code>
修改調色盤後,可以建立自訂顏色圖。然後利用 BoundaryNorm 來定義分箱並相應地標準化資料。
<code class="python">cmap = mpl.colors.LinearSegmentedColormap.from_list( 'Custom cmap', cmaplist, cmap.N) bounds = np.linspace(0, 20, 21) norm = mpl.colors.BoundaryNorm(bounds, cmap.N)</code>
修改後的調色板和標準化到位後,可以渲染散點圖。新增單獨的軸來容納色條,該色條經過自訂以顯示離散邊界及其對應的顏色。
<code class="python">scat = ax.scatter(x, y, c=tag, cmap=cmap, norm=norm) 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>
此方法可以建立自訂離散色條,可有效地在散佈圖中傳達離散數據,提供底層模式的更清晰的視覺表示。
以上是如何在 Matplotlib 中為散點圖建立自訂離散色條?的詳細內容。更多資訊請關注PHP中文網其他相關文章!