SORU
5 NİSAN 2010, PAZARTESİ


Nasıl matplotlib içinde imshow ile özel bir renk olarak NaN değerler yapabilir miyim?

Bir ısı haritası olarak arsa verilere matplotlib içinde imshow kullanmaya çalışıyorum, ama bazı değerler NaNs. Bu NaNs özel bir renk colormap bulunamadı gibi oluşturulmuş etmek istiyorum.

örnek:

import numpy as np
import matplotlib.pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
a = np.arange(25).reshape((5,5)).astype(float)
a[3,:] = np.nan
ax.imshow(a, interpolation='nearest')
f.canvas.draw()

Sonuç görüntü, beklenmedik bir şekilde tüm mavi (jet colormap en düşük renk). Eğer yaparsam ancak, komplo bu gibi:

ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)

- o zaman ben daha iyi bir şey, ama NaN değerler çizilmiş aynı renk olarak vmin... zarif bir şekilde elimden set NaNs çizilmesini ile özel bir renk (örn: gri veya şeffaf)?

CEVAP
5 NİSAN 2010, PAZARTESİ


İnsan Kaynakları Yönetimi, maskeli bir dizi bunu yapmak için kullanabilirim gibi görünüyor:

masked_array = np.ma.array (a, mask=np.isnan(a))
cmap = matplotlib.cm.jet
cmap.set_bad('w',1.)
ax.imshow(masked_array, interpolation='nearest', cmap=cmap)

Bu hala önerilere açığım ama yeterli. :]

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • KittiesMama

    KittiesMama

    10 AĞUSTOS 2008
  • midomansour

    midomansour

    19 EYLÜL 2009
  • Murray Winiata

    Murray Winia

    2 ŞUBAT 2009