簡體   English   中英

Gdk-CRITICAL **:10:33:28.827:gdk_cursor_new_for_display:斷言“GDK_IS_DISPLAY(顯示)”失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM