繁体   English   中英

matplotlib 和后端“agg”导致绘图未显示

[英]matplotlib and backend 'agg' result in plot not showing up

我正在尝试将 matplotlib 与 Pycharm Community Ed 一起使用。 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'

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

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

sudo apt-get install python3-tk

但是,仍然需要使用 plt.show() 来弹出图形

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM