2016-04-29 133 views
1

我運行Python代碼,因爲它是從本網站:pylab.show()沒有工作

http://cvxopt.org/examples/book/rls.html

要在這裏表現出來:

# Figure 4.11, page 185. 
    # Regularized least-squares. 
    .... 
    pylab.figure(1, facecolor='w') 
    pylab.plot(lbnds, alpha1, 'b-', ubnds, alpha2, 'b-') 
    kmax = max([ k for k in range(len(alpha1)) if alpha1[k] < 
     blas.nrm2(xls)**2 ]) 
    pylab.plot([ blas.nrm2(b)**2 ] + lbnds[:kmax] + 
     [ blas.nrm2(A*xls-b)**2 ], [0.0] + alpha1[:kmax] + 
     [ blas.nrm2(xls)**2 ], '-', linewidth=2) 
    pylab.plot([ blas.nrm2(b)**2, blas.nrm2(A*xls-b)**2 ], 
     [0.0, blas.nrm2(xls)**2], 'bo') 
    pylab.fill(lbnds[-1::-1] + ubnds + [ubnds[-1]], 
     alpha1[-1::-1] + alpha2+ [alpha1[-1]], facecolor = '#D0D0D0') 
    pylab.axis([0, 15, -1.0, 15]) 
    pylab.xlabel('||A*x-b||_2^2') 
    pylab.ylabel('||x||_2^2') 
    pylab.grid() 
    pylab.title('Regularized least-squares (fig. 4.11)') 
    pylab.show() 

它應該顯示我運行python rls.py後繪圖。但沒有出現,有任何幫助?謝謝

+0

什麼後端您使用的似乎好? – tacaswell

+0

我用的是Mac ....... –

+0

該頁面上的代碼有「try:import pylab」。也許刪除「嘗試」,以確保它實際上已成功導入pylab ... – DanHickstein

回答

0

當您使用pylab.show()時,您需要啓用交互式後端以獲取圖形查看器窗口。 'agg'背景是非交互式的(儘管有基於Agg的交互式後端,例如TkAgg,Qt5Agg)。

你有幾個選擇,但MacOS X最簡單的選擇是'macosx'後端。您可以通過使用啓用這個在你的腳本的頂部如下:

import matplotlib 
matplotlib.use('macosx') 
+0

我試過這個沒有成功......更重要的問題是,源代碼是用於分發目的,所以我不能修改它(因爲它也需要在Linux等上使用)。在我的機器中糾正這種情況對我來說會更有意義.... –