![](/img/trans.png)
[英]How to resolve Gdk-CRITICAL **: 17:13:03.280: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
[英]Gdk-CRITICAL **: 10:33:28.827: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
我已經通過 VSCode 運行了以下代碼:
import numpy as np
import matplotlib.pyplot as plt
a = np.array([2, 4, 5])
plt.plot(a)
print('Hello')
它的輸出沒有顯示 matplotlib 圖,但仍然打印“你好”。 這是輸出日志:
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
(demo.py:16992): Gdk-CRITICAL **: 10:33:28.827: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
Hello
我通過 VSCode,Ubuntu 20.04 運行此代碼。 但是當我用Spyder3運行時,它正常顯示數字。
我不知道 VSCode,但我想它沒有使用可以顯示 matplotlib 圖形的更復雜的(Qt)控制台。 如果我沒記錯的話,這就是 Spyder 的情況。
快速 matplotlib 介紹:
plt.show()
在單獨的窗口中顯示您的繪圖。 然后控制台被“鎖定”。 通過關閉窗口,您可以“刪除”您的情節。 因此,新的“線”(例如plt.plot(a+1)
)將在沒有您以前數據的情況下繪制在新窗口中。plt.ion()
(與plt.ioff()
停用plt.ion()
來啟動交互模式。 然后plt.show()
不會鎖定您的控制台plt.savefig("filename.png")
直接保存它,而不是繪圖。 也許你想設置后端並阻止它加載 GTK 的東西。 然后您不會收到 Gdk-CRITICAL 消息。 插入import matplotlib; matplotlib.use('Agg')
import matplotlib; matplotlib.use('Agg')
在你導入pyplot
之前它能解決你的問題嗎?
如果不是,回答以下問題可能會有所幫助:
當您更改(交互式)后端時會發生什么? 提示:閱讀幫助help(matplotlib.use)
(當然在加載import matplotlib
)
你的默認后端是什么? matplotlib.get_backend()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.