簡體   English   中英

使用Matplotlib以圖例樣式繪制離散顏色條

[英]Plotting discrete colorbar in legend style using Matplotlib

有時,我想以pcolormesh樣式繪制離散值。

例如,代表100x100形狀的二維數組,其中包含int 0〜7

data  = np.random.randint(8, size=(100,100))
cmap = plt.cm.get_cmap('PiYG', 8) 
plt.pcolormesh(data,cmap = cmap,alpha = 0.75)
plt.colorbar()  

該圖顯示如下:
在此處輸入圖片說明

如何以圖例樣式生成顏色條。 換句話說,每個顏色框對應其值(例如,粉紅色的顏色框-> 0)

這里有一個例子(不適合這個例子):

在此處輸入圖片說明

也許最簡單的方法是創建相應數量的Patch實例:

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import numpy as np

data  = np.random.randint(8, size=(100,100))
cmap = plt.cm.get_cmap('PiYG', 8) 
plt.pcolormesh(data,cmap = cmap,alpha = 0.75)
# Set borders in the interval [0, 1]
bound = np.linspace(0, 1, 9)
# Preparing borders for the legend
bound_prep = np.round(bound * 7, 2)
# Creating 8 Patch instances
plt.legend([mpatches.Patch(color=cmap(b)) for b in bound[:-1]],
           ['{} - {}'.format(bound_prep[i], bound_prep[i+1] - 0.01) for i in range(8)])

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM