[英]Error creating graphics ctxt object in python librosa
我正在嘗試使用librosa繪制一些.wav數據,但遇到一些異常問題,在谷歌搜索“創建圖形ctxt對象的python librosa錯誤”中找不到很多問題
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和外部嘗試過,兩種情況都存在相同的錯誤。
pip install {matplotlib,librosa,numpy}在virtualenv和外部都顯示為不需要更新
錯誤消息(超出此范圍並鎖定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.
我認為問題不是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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.