我試圖從有關

此外,我還嘗試了以下幾行,但我無法創建資料著色器頁面上顯示的示例影像:
colors = ["red", "grey", "black", "purple", "pink",
"yellow", "brown", "green", "orange", "blue"]
imgs = [tf.shade(aggs[i], cmap=[c]) for i, c in zip(cols, colors)]
tf.stack(*imgs)
如何正確設定影像的顏色以便繪制、保存或使用它?
它在資料著色器示例中是如何作業的?
uj5u.com熱心網友回復:
如何正確設定影像的顏色以便繪制、保存或使用它?
簡單的答案是,如果您想tf.shade在 Matplotlib 中使用繪制輸出,您可以將其轉換為可以理解使用imshow的 PIL 影像:imshowimg.to_pil()

如果你不把它轉換成 PIL 那樣,它的輸出tf.shade()是一個 type 的物件datashader.transfer_functions.Image,一種 Xarray DataArray 的型別,它將影像的 R、G、B 和 A 通道堆疊為一個多維陣列。imshow可以顯示 RGBA 影像,但不能以 Datashader 回傳的堆疊 DataArray 格式顯示,因此它似乎只采用一個通道(R,也許?)并使用默認的 Matplotlib 顏色圖繪制,因此顏色不同。所以永遠不要將輸出tf.shade直接傳遞給imshow; 這永遠不會有用,而且有點不幸的是它會繪制任何東西,因為它具有誤導性。
您可以安全地將底層二維聚合陣列(的輸出cvs.line)傳遞imshow給 Matplotlib 以進行顏色映射和顯示,但是(a)如果您不喜歡 Matplotlib 的默認 Viridis,您需要選擇自己的顏色映射,并且( b) 當 Datashader 渲染到從左下角開始的坐標和 Matplotlib 從左上角開始的坐標時,輸出將垂直翻轉:

但是,如果您想要一個 Matplotlib 圖,而不是這些選項中的任何一個,我建議您使用Datashader 的本機 Matplotlib dsshow 繪圖支持將結果顯示為 Matplotlib 圖;不需要像這樣處理任何中間步驟,作為獎勵,結果將是互動式的。
它在資料著色器示例中是如何作業的?
Datashader 檔案都是作為 Jupyter 筆記本撰寫的,在這些示例中,使用 Jupyter/IPython豐富的顯示支持來處理影像顯示。具體來說,datashaderImage物件實作了_repr_html_(),并且 Jupyter/IPython 呼叫該方法以在筆記本中顯示該物件。img.to_pil()如果您希望按照PIL檔案中的說明輕松轉換為 PNG,您可以打電話給自己。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418154.html
標籤:
