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

  • Lin Steven

    Lin Steven

    17 EKİM 2006
  • paulandstorm

    paulandstorm

    4 EYLÜL 2006
  • TheFlightsuit

    TheFlightsui

    22 HAZİRAN 2009