在python librosa中创建图形ctxt对象时出错

在python librosa中创建图形ctxt对象时出错,python,python-2.7,matplotlib,librosa,Python,Python 2.7,Matplotlib,Librosa,我试图用librosa绘制一些.wav数据,但我遇到了一些不寻常的问题,在谷歌搜索“pythonlibrosa错误创建图形ctxt对象”时找不到太多问题 可能与macOS有关 我在virtualenv和outside中都试过,两种情况下都是相同的错误 pip安装{matplotlib、librosa、numpy}在virtualenv和外部都显示为不需要更新 错误消息(继续超出此范围并锁定python-必须强制退出) 2017-03-24 22:15:03.393 python[62870:25

我试图用librosa绘制一些.wav数据,但我遇到了一些不寻常的问题,在谷歌搜索“pythonlibrosa错误创建图形ctxt对象”时找不到太多问题

可能与macOS有关

我在virtualenv和outside中都试过,两种情况下都是相同的错误

pip安装{matplotlib、librosa、numpy}在virtualenv和外部都显示为不需要更新

错误消息(继续超出此范围并锁定python-必须强制退出)

2017-03-24 22:15:03.393 python[62870:25289530]\u initWithWindowNumber:为ctxt:0x3653b,窗口:0x9754创建图形ctxt对象时出错
2017-03-24 22:15:03.393 python[62870:25289530]_initWithWindowNumber:为ctxt:0x3653b,窗口:0x9754创建图形ctxt对象时出错
3月24日22:15:03 python[62870]:CGContextSetFillColorWithColor:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextSetStrokeColorWithColor:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextGetCompositeOperation:上下文0x0无效。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextSetCompositeOperation:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextFillRects:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextSetCompositeOperation:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
三月24日22:15:03 python[62870]:CGContextGetCTM:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextGetDefaultUserSpaceToDeviceSpaceTransform:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextSaveGState:上下文0x0无效。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextConcatCTM:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextSetCompositeOperation:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextSaveGState:上下文0x0无效。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。
3月24日22:15:03 python[62870]:CGContextSetCompositeOperation:无效上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_backtrace环境变量。

我认为问题在于
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()

我发现这一行是罪魁祸首:
fig=plt.figure(figsize=(25,60),dpi=900)
一旦删除,程序就会正常运行。它可能是特定于macOS的,不确定。
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.
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()