Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Gdk CRITICAL**:10:33:28.827:Gdk#u cursor#u new#u for#u display:assertion';GDK#U IS#U显示器(显示器)和#x27;失败_Python 3.x_Matplotlib_Visual Studio Code_Gdk - Fatal编程技术网

Python 3.x Gdk CRITICAL**:10:33:28.827:Gdk#u cursor#u new#u for#u display:assertion';GDK#U IS#U显示器(显示器)和#x27;失败

Python 3.x Gdk CRITICAL**:10:33:28.827:Gdk#u cursor#u new#u for#u display:assertion';GDK#U IS#U显示器(显示器)和#x27;失败,python-3.x,matplotlib,visual-studio-code,gdk,Python 3.x,Matplotlib,Visual Studio Code,Gdk,我已通过VSCode运行以下代码: import numpy as np import matplotlib.pyplot as plt a = np.array([2, 4, 5]) plt.plot(a) print('Hello') 其输出未显示matplotlib图,但仍打印“Hello”。这是输出日志: Unable to init server: Could not connect: Connection refused Unable to init server: Could

我已通过VSCode运行以下代码:

import numpy as np
import matplotlib.pyplot as plt 

a = np.array([2, 4, 5])
plt.plot(a)
print('Hello')
其输出未显示matplotlib图,但仍打印“Hello”。这是输出日志:

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,但我猜它没有使用更复杂的(Qt)控制台来显示matplotlib图。如果我没记错的话,斯派德就是这样

快速matplotlib简介:

  • 实际上,您的图形已绘制,但未显示
  • 通常,您可以使用
    plt.show()
    在单独的窗口中显示绘图。然后控制台被“锁定”。通过关闭窗口,可以“删除”绘图。因此,新的“线”(例如,
    plt.plot(a+1)
    )将在新窗口中绘制,而不需要您以前的数据
  • 您可以通过调用
    plt.ion()
    (使用
    plt.ioff()
    )来启动交互模式。然后
    plt.show()
    不会锁定控制台
  • 您可以使用
    plt.savefig(“filename.png”)
    直接保存它,而不是打印。也许您想设置后端并阻止它加载GTK内容。那么你就不会得到Gdk的关键信息了。插入
    导入matplotlib;matplotlib。在导入
    pyplot
它能解决你的问题吗

如果没有,回答以下问题可能会有所帮助:

  • 当您更改(交互式)后端时会发生什么?提示:阅读帮助
    帮助(matplotlib.use)
    (当然是在加载
    导入matplotlib之后)

  • 您的默认后端是什么
    matplotlib.get\u backend()