Все цвета патчей сбрасываются в коллекции патчей

У меня есть растровый график с различными размерами растра, поэтому я использую патчи matplotlib для их добавления. Раньше я зацикливался, добавляя по одному патчу за раз, что работает, но медленно. Я попытался изменить код, чтобы добавить все исправления сразу, используя коллекцию исправлений. Это примерно в 4 раза быстрее (меньше, чем я надеялся), но проблема в том, что все патчи одного цвета. Может ли кто-нибудь указать, что неверно в моем итераторе в моем воспроизводимом примере, пожалуйста?

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.colorbar as cbar
import matplotlib.collections as collections

fig,(ax)=plt.subplots(2)
cmap=plt.cm.seismic  
n=50

np.random.seed(seed=100) 
px=np.random.uniform(size=n)
py=np.random.uniform(size=n)
cidx=np.random.uniform(size=n)
normal=plt.Normalize(0,1) 
cols=cmap(cidx)

# slow way:
for i in range(n):
    p=patches.Rectangle((px[i],py[i]),0.1,0.1,
                facecolor=cols[i])
    ax[0].add_patch(p)

# fast way, but colors are all identical
plist=[patches.Rectangle((px[i],py[i]),0.1,0.1,facecolor=cols[i]) for i in range(n)]    
collection=collections.PatchCollection(plist)
ax[1].add_collection(collection)

plt.show()

введите здесь описание изображения


person Adrian Tompkins    schedule 17.10.2019    source источник
comment
Смотрите обман. По сути, вы хотите использовать collection=collections.PatchCollection(plist, match_original=True)   -  person tmdavison    schedule 17.10.2019
comment
о, спасибо, извините, что пропустил...   -  person Adrian Tompkins    schedule 17.10.2019
comment
не надо извиняться :)   -  person tmdavison    schedule 17.10.2019