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

  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009
  • Manuel Vizcaino

    Manuel Vizca

    27 Mayıs 2008
  • Samantha Crain

    Samantha Cra

    30 EKİM 2008