簡體   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