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

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009