產生具有離散顏色表示的散佈圖是資料視覺化中的常見任務。這允許根據特定值為每個數據點分配唯一的顏色。
在 Matplotlib 中,可以使用 BoundaryNorm 作為散佈圖的標準化器來建立離散色條。這在使用整數標籤值時特別有用,例如提供的範例:
plt.scatter(x, y, c=tag)
其中 tag 表示每個資料點的整數標籤值。
預設設定 plt .colorbar(),通常顯示連續範圍的顏色。若要建立離散色條,需要指定一組離散顏色。例如,要建立具有20 種顏色的色條,可以使用LinearSegmentedColormap.from_list 函數:
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)
這裡,第一個顏色條目設定為灰色,可用來表示標籤值0. cmaplist 中的其他條目定義剩餘標籤值的顏色。
要建立離散色條,還需要定義 bin 並標準化資料。 scipy.stats.binned_statistic 函數可用於計算每個資料點的單獨排名並將它們指派給離散組。然後,colors.BoundaryNorm 可用於標準化資料並將其對應到所需的色條範圍:
bounds = np.linspace(0, 20, 21) norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
最後,可以將第二個軸添加到圖形中以建立色條本身:
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')
這將建立一個具有指定配色方案的離散顏色條。可以透過修改邊界和邊界參數來調整離散顏色的數量。
透過執行以下步驟,可以在 Matplotlib 中產生離散色條,準確地表示資料點的基礎整數標記值。
以上是如何在 Matplotlib 中為散點圖建立離散色條?的詳細內容。更多資訊請關注PHP中文網其他相關文章!