2012-01-26 14 views
55

Matplotlib kullanarak yaptığım grafik çizmeye çalışıyorum; ancak, görüntüler boş kaydediliyor.Matplotlib (pyplot) savefig çıktıları boş resim

plt.subplot(121) 
plt.imshow(dataStack, cmap=mpl.cm.bone) 

plt.subplot(122) 
y = copy.deepcopy(tumorStack) 
y = np.ma.masked_where(y == 0, y) 

plt.imshow(dataStack, cmap=mpl.cm.bone) 
plt.imshow(y, cmap=mpl.cm.jet_r, interpolation='nearest') 

if T0 is not None: 
    plt.subplot(123) 
    plt.imshow(T0, cmap=mpl.cm.bone) 

    #plt.subplot(124) 
    #Autozoom 

#else: 
    #plt.subplot(124) 
    #Autozoom 

plt.show() 
plt.draw() 
plt.savefig('tessstttyyy.png', dpi=100) 

Ve tessstttyyy.png boş (aynı zamanda .jpg ile çalıştı) 'dir

cevap

107

Birincisi, ne zaman ne T0 is not None olur: Burada

benim kodudur? Bunu test ederim, sonra plt.subplot()'a geçtiğim değerleri ayarlayacağım; belki de, 131, 132 ve 133 değerlerini veya T0'un var olup olmadığına bağlı değerleri deneyin.

İkinci olarak, plt.show() çağrıldıktan sonra yeni bir şekil oluşturulur. Bununla başa için, o zaman bu Figure nesne üzerinde savefig() çağırabilir, "Mevcut rakam olsun" için plt.gcf() arayarak plt.show()

  • size show() önce figürü kaydet

    1. Çağrı plt.savefig('tessstttyyy.png', dpi=100) çağırabilmek her zaman. Örneğin

    : hangi bir şey çizilen edilmiş, yeni rakamı tasarruf çünkü

    fig1 = plt.gcf() 
    plt.show() 
    plt.draw() 
    fig1.savefig('tessstttyyy.png', dpi=100) 
    

    kodunuzda, 'tesssttyyy.png' boştur.

  • +0

    plt.savefig() T0 parçasını kaldırmak için unuttum sonra – tylerthemiler

    +1

    Evet, gösteriyi tamamen kaldırdım ve işe yaradı, bu da mantıklı geliyor .... – tylerthemiler

    +1

    Bu harika, çekicilik gibi çalışıyor – denvar

    11

    plt.show()

    daha önce yorumladı edildi ... gelmelidir.