2013-07-09 20 views
5

Ben bazı veriler olduğunu varsayalım ve bir özel çizim işlevine ileterek bu verilerin bir arsa oluşturmak istiyorum (MyPlot()). Matplotlib modüllerini myplot() içinde kullanıyorum.Bir işlev python'da bir şekil nasıl döndürür (matplotlib kullanarak)?

ben MyPlot() Bu işlevini çağırdığınızda arsa görüntülemek çizmek bir rakam için kolu döndürmediğinden ve istiyoruz. İşte örnek kod ve iPython'dan çıktı.

enter image description here

Bunu ilgili iki soru var: Ben f MyPlot() çıktısını atama am rağmen

  1. Neden hala, bir komplo görüyorsun?
  2. Ben bir değişkene MyPlot() çıktısını atama olduğum bu arsa baskılamak için neye ihtiyacım var
  3. ?
+0

Bu yalnızca bir iPython Not Defteri özelliğidir, değil mi? Çünkü figürleri IDLE'de geçirdiğimde bir komplo görmüyorum. –

cevap

5

başlatın ipython ile

ipython notebook

yerine

ipython notebook --pylab=inline

enter image description here

+1

Tüm dizüstü bilgisayar oturumunu inline olmayan modda başlatmak zorunda değilsiniz. Satır içi arka uç davranışını aşağıdaki komutla kontrol edebilirsiniz. '% config InlineBackend.close_figures = False ' Bu, arsalarınızın ardı ardına kapatılmasını engeller (tarayıcıda gösterilir). – ala

1

olmayan inline-modus bütün defter başlatmak istemiyorsanız Aşağıdaki kodu kullanabilirsiniz:

%config InlineBackend.close_figures = False 

def myplot(t,x): 
    fig = figure() 
    x = plot(t,x) 
    fig.savefig('plot.png') # This is just to show the figure is still generated 
    return fig 

t = arange(0,6,0.01) 
x = sin(t) 

f = myplot(t,x) 
+0

Bu işe yaramadı. Yine de soruda gösterilenle aynı çıktıyı elde ediyorum. – siva82kb

İlgili konular