2017-03-25 7 views
2

私はlibrosaでいくつかの.wavデータをプロットしようとしていますが、私は作成中にエラーが発生し、グラフィックスは、Python librosa内のオブジェクトCTXT

を「グラフィックスを作成PythonのlibrosaエラーオブジェクトCTXT」私はグーグルで多くを見つけることができなかったいくつかの異常な問題を抱えています
def plot_waves(sound_names, raw_sounds): 
    i = 1 
    fig = plt.figure(figsize=(25, 60), dpi=900) 
    for n, f in zip(sound_names, raw_sounds): 
     print "plot_waves:", i 
     plt.subplot(10, 1, i) 
     librosa.display.waveplot(np.array(f), sr=22050) 
     plt.title(n.title()) 
     i += 1 
    print "plot_waves_loop_end" 


    plt.suptitle("Figure 1: Waveplot", x=0.5, y=0.915, fontsize=18) 

    #THIS LINE CAUSES THE ERROR 
    plt.show() 

おそらくmacOSに関連しています。

私はvirtualenvとoutsideで試してみましたが、どちらの場合も同じエラーです。何の更新は必要ありませんよう

ピップはvirtualenvの中で、{matplotlibの、librosa、numpyの}すべてのショーをインストールし、外部

エラーメッセージが(これ以上行くとPythonをロックし続ける - 強制終了する必要があります)

2017-03-24 22:15:03.393 python[62870:25289530] _initWithWindowNumber: error creating graphics ctxt object for ctxt:0x3653b, window:0x9754 
2017-03-24 22:15:03.393 python[62870:25289530] _initWithWindowNumber: error creating graphics ctxt object for ctxt:0x3653b, window:0x9754 
Mar 24 22:15:03 python[62870] <Error>: CGContextSetFillColorWithColor: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextSetStrokeColorWithColor: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextGetCompositeOperation: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextSetCompositeOperation: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextFillRects: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextSetCompositeOperation: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextGetCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextGetDefaultUserSpaceToDeviceSpaceTransform: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextConcatCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextSetCompositeOperation: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
Mar 24 22:15:03 python[62870] <Error>: CGContextSetCompositeOperation: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 
+1

私は、この行が犯人だった: ' 一度削除'図= plt.figure(DPI = 900 figsize =(25、60)、)、プログラムが正しく実行されます。それは確かではないmacOS特有のものかもしれません。 – SwimBikeRun

答えて

0

あなたのコメント通りに行を削除するのではなく、dpiの設定が高すぎると考えています(900はおそらく過剰です)!それを減らすようにしてください(たとえば30に)、それはうまくいくはずです。

def plot_waves(sound_names, raw_sounds): 
    i = 1 
    fig = plt.figure(figsize=(25, 60), dpi=30) ## changed from 900 to 30 
    for n, f in zip(sound_names, raw_sounds): 
     print "plot_waves:", i 
     plt.subplot(10, 1, i) 
     librosa.display.waveplot(np.array(f), sr=22050) 
     plt.title(n.title()) 
     i += 1 
    print "plot_waves_loop_end" 


    plt.suptitle("Figure 1: Waveplot", x=0.5, y=0.915, fontsize=18) 

    plt.show()