2012-04-11 29 views
8

ile veri beyaz olmadan ayar noktaları ayarlama Matplotlib imshow kullanarak bir numpy dizi verileri grafikler. Ancak, bazı noktalarda veri yoktur. Np.zeroes kullanarak diziyi başlattım, böylece bu noktalar tüm haritayı sürükliyor. Verilerden hiçbirinin 0,0 değerinde olmayacağını biliyorum. Imshow rutinini bu noktaları görmezden gelerek söylemem için bir yol var mı? (Yani boş bıraktıkları için onları beyaz bırakın)?Matplotlib imshow

+0

İki iyi cevabınız var; birini doğru seçmeyi düşünün. Hedefimi gerçekleştirmek için iki cevabı birleştirdim. İkisi de bir cmap tanımlamaktan çok daha kolaydı. – physicsmichael

cevap

10

Matplotlib'in varsayılanının NaN'leri sizin için uygun bir şekilde görmezden gelip gelmeyeceğini görmek için dizinizi sıfırlar yerine NaN'lerle eşleştirmeyi denediniz mi? Ayrıca sağ komplo önce sadece 0 eşit NaN'a yerleri yapmak mantıklı dizini kullanmayı deneyebilirsiniz: Eğer NaN fikir kullanabilirsiniz, Alternatif

my_data[my_data == 0.0] = numpy.nan 

ve follow this link's advice ve kullanımı NumPy NaN girişlerini çizmek amacıyla diziler maskeli tercih ettiğiniz bir renk olarak.

Ayrıca, bu bağlantıyı da beğenmediyseniz, NaN seçeneğine gitmeden, sıfır konumlarında maskelenmiş bir dizi yapmak için bu bağlantı fikrini de kullanabilirsiniz.

3

Diziyi gösterilmemesi gereken noktalar için Python Yok ile doldurun.

y_series_1 = [1,None,None,4,5] 
y_series_2 = [1,2,5,6,7] 

Bu örnekte, y_series_1 satırı ikinci ve üçüncü noktadaki X ekseninden kaybolacaktır. Sonuç satır sonlarıdır (hat başlar, kaybolur, sonra dördüncü noktada devam eder), ki senin peşinde olduğun davranış olduğuna inanıyorum.