Python matplotlib和后端';agg&x27;导致绘图未显示

Python matplotlib和后端';agg&x27;导致绘图未显示,python,matplotlib,pycharm,backend,Python,Matplotlib,Pycharm,Backend,我试图将matplotlib与Pycharm社区版2019.3、Python 3.7.3、Ubuntu 19.04一起使用 import matplotlib import matplotlib.pyplot as plt plt.figure() plt.plot(3,2,'.') plt.show() 但获取以下错误代码:UserWarning:Matplotlib当前正在使用agg,它是一个非GUI后端,因此无法显示该图。” 我尝试将后端更改为“NbAgg”: import matpl

我试图将matplotlib与Pycharm社区版2019.3、Python 3.7.3、Ubuntu 19.04一起使用

import matplotlib
import matplotlib.pyplot as plt

plt.figure()
plt.plot(3,2,'.')
plt.show()
但获取以下错误代码:UserWarning:Matplotlib当前正在使用agg,它是一个非GUI后端,因此无法显示该图。”

我尝试将后端更改为“NbAgg”:

import matplotlib
matplotlib.use('NbAgg')
import matplotlib.pyplot as plt

plt.figure()
plt.plot(3,2,'.')
plt.show()
但获取以下错误代码:

 Traceback (most recent call last):
  File "/home/leo/.PyCharmCE2019.3/config/scratches/scratch_1.py", line 7, in <module>
    plt.show()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/pyplot.py", line 269, in show
    return _show(*args, **kw)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 261, in show
    manager.show()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 90, in show
    self._create_comm()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 122, in _create_comm
    self.add_web_socket(comm)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 432, in add_web_socket
    self.resize(w, h)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 418, in resize
    size=(w / self.canvas._dpi_ratio, h / self.canvas._dpi_ratio))
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 489, in _send_event
    s.send_json(payload)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 199, in send_json
    self.comm.send({'data': json.dumps(content)})
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 123, in send
    data=data, metadata=metadata, buffers=buffers,
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 66, in _publish_msg
    self.kernel.session.send(self.kernel.iopub_socket, msg_type,
AttributeError: 'NoneType' object has no attribute 'session'
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/_pylab_helpers.py", line 73, in destroy_all
    manager.destroy()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 126, in destroy
    self._send_event('close')
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 489, in _send_event
    s.send_json(payload)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 199, in send_json
    self.comm.send({'data': json.dumps(content)})
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 123, in send
    data=data, metadata=metadata, buffers=buffers,
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 66, in _publish_msg
    self.kernel.session.send(self.kernel.iopub_socket, msg_type,
AttributeError: 'NoneType' object has no attribute 'session'
回溯(最近一次呼叫最后一次):
文件“/home/leo/.PyCharmCE2019.3/config/scratches/scratch_1.py”,第7行,在
plt.show()
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/pyplot.py”,第269行,在显示中
返回显示(*参数,**千瓦)
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend_nbagg.py”,第261行,在show中
manager.show()
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend_nbagg.py”,第90行,在显示中
self.\u创建\u通信()
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend\u nbagg.py”,第122行,在_create\u comm中
自我添加网络插座(通信)
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend\u webagg\u core.py”,第432行,在add\u web\u socket中
自我调整大小(宽、高)
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend_webagg_core.py”,第418行,调整大小
大小=(w/self.canvas.\u dpi\u比率,h/self.canvas.\u dpi\u比率)
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend\u webagg\u core.py”,第489行,在发送事件中
s、 发送json(有效负载)
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend_nbagg.py”,第199行,在send_json中
self.comm.send({'data':json.dumps(content)})
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/ipykernel/comm/comm.py”,第123行,发送
数据=数据,元数据=元数据,缓冲区=缓冲区,
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/ipykernel/comm/comm.py”,第66行,在发布消息中
self.kernel.session.send(self.kernel.iopub_套接字,msg_类型,
AttributeError:“非类型”对象没有“会话”属性
atexit中出错。\u运行\u退出功能:
回溯(最近一次呼叫最后一次):
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/_pylab_helpers.py”,第73行,全部销毁
经理
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend_nbagg.py”,第126行,在destroy中
自我发送事件(“关闭”)
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend\u webagg\u core.py”,第489行,在发送事件中
s、 发送json(有效负载)
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/matplotlib/backends/backend_nbagg.py”,第199行,在send_json中
self.comm.send({'data':json.dumps(content)})
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/ipykernel/comm/comm.py”,第123行,发送
数据=数据,元数据=元数据,缓冲区=缓冲区,
文件“/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site packages/ipykernel/comm/comm.py”,第66行,在发布消息中
self.kernel.session.send(self.kernel.iopub_套接字,msg_类型,
AttributeError:“非类型”对象没有“会话”属性

我知道后端和显示绘图不兼容,但我不知道我需要做什么来匹配后端和显示绘图。

我可以将后端更改为“TkAgg”,但我必须使用以下命令行安装tk:

sudo apt-get install python3-tk

但是,仍然需要使用plt.show()对于弹出的图形而言,
agg
是一个非交互式后端,它不能显示图形。
nbagg
是IPython或笔记本电脑中使用的后端,它不能在PyCharm中使用。PyCharm有一个自定义后端,
interagg
,否则您可以使用matplotlib提供的任何工具。@ImportanceOfBeingErnest如何使用c我们是后端interagg吗?我不知道。这是一个PyCharm东西,PyCharm是专有的,所以你需要在手册中查找或联系他们。是的,
plt.show()
是在pyplot中显示图形的命令。这是意料之中的。